整型常量到const char*的静态转换
static conversion of integer constant to const char*
我有一个在编译时已知的整数常数(但不是在代码编写时),我想生成,也在编译时,一个const char*
持有它们作为ASCII。例如
const int C = IntegerConst;
const char*C_as_text = StaticConvert(A);
这样,如果IntegerConst
在某些#include
d头文件中给定,例如IntegerConst=42
,则C_as_text="42"
。
任何想法如何获得这样的StaticConvert()
功能?原则上,这必须是可能的,因为编译器和预处理器手头有所有必要的信息。
你可以使用预处理器指令:
#define StaticConvert(N) #N
这里的条件是您需要提供数字本身为N
。例如
const int C = 42;
const char *C_as_test = StaticConvert(42);
'stringize'预处理器操作符:
#define StaticConverter(V) #V
const char *x = StaticConverter(56);
assert(x[0] == '5' && x[1] == '6' && x[2] == 0);
使用预处理器的字符串化操作符
相关文章:
- enable_if转换构造函数(静态强制转换,is_base_of)
- 使用转换器提升 Python 问题 - 静态链接
- 不要使用静态强制转换进行算术转换(cpp-core-guidelines)
- C++实用程序::转换在静态链接库中不起作用
- 静态成员变量不会由 gettext 转换
- C++ 将静态方法转换为简单方法
- 虚拟成员函数的定义是否强制在同一转换单元中动态初始化静态数据成员?
- 如何使用静态多态性在 int 和指针类型之间进行转换?
- 指向 POD 类型的指针之间的静态转换与重新解释转换
- 静态强制转换内的表达式
- 我需要静态转换我的数字模板值吗
- 使用静态转换,因为动态转换失败.不好的做法?
- 静态转换父级到子级C++
- 是否应该避免这种从 int 到双精度的静态转换?
- 如何在C++中正确静态转换矢量
- 枚举静态转换为布尔,编译器发出性能警告
- 静态转换接口类到内部引擎实现
- 整型常量到const char*的静态转换
- 如何在无符号int和int之间安全地静态转换
- 将接口静态转换为派生类