如何在C++中分配“#input”类型的宏字符串
How are `#input` type macro strings allocated in C++?
这是我在这里的一个旧问题的后续问题。我找到了一些这样的代码:
#define TYPESUPPORT(T)
...
static const char* get_type_name()
{
return #T;
}
...
其中T
是变量类型(例如 int
(。 #T
用于获取宏输入的纯文本名称。
这样做安全吗?例如,#T
如何分配?它是否为每个宏调用或其他内容分配const char*
或const char[]
字符串文字,就像我的第一个问题一样?
宏
只是执行文本到文本的翻译。因此,在展开TYPESUPPORT(int)
后,函数将如下所示:
static const char* get_type_name()
{
return "int";
}
正如链接问题中所述,字符串文字具有静态存储持续时间,因此返回此指针没有问题。它来自#T
的扩展这一事实在编译的这个阶段是无关紧要的。
相关文章:
- 错误:请求从"常量字符 [5]"转换为非标量类型"字符串"
- 类型字符串::长度()。我得到了"Unable to resolve identifier length"
- 如何掩盖对象数组的数据类型字符串到C 中的INT
- 解析参数值 - 字符串和链接值(类型字符串的链接值)与(特定类型的)变量
- C 中的枚举类型字符串类别
- 与基本面作斗争.特别是字符[],字符*和从数组中读取.也许我应该使用类型字符串
- 矢量类型 字符串,但当用整数初始化时
- 如何从const char *类型字符串中删除新线字符
- 在 c++ 中将 ostream 分配给数据类型字符串
- Linux 编译错误 - 无法将类型"字符串"转换为类型"字符串&&"
- LPCSTR 类型字符串出现乱码或显示错误
- C 表达式必须具有类型 - 字符串到const char*
- 将值分配给字符类型字符串
- 将组合框中的类型字符串与其项目进行比较
- 如何将返回类型字符串的数据复制到C++中
- 如何处理csv文件输入流,我需要将文件的每一行中的数据划分为6个不同的变量(类型字符串和int)
- 自定义C类型字符串类的问题
- 在c++中创建自定义C类型字符串类
- 在读取.csv时将数组类型字符串转换为double
- C++将类型字符串变量中的单词转换为小写