【发布时间】:2015-08-04 10:36:25
【问题描述】:
是否可以编写一个解串字符串文字参数的 gcc 宏?我知道# 可能会发生相反的情况。可以逆转吗?
例如,__func__ 以字符串文字的形式计算出当前函数的名称。我可以去掉它周围的双引号吗?
【问题讨论】:
-
我不认为这是可能的,你不能不定义一个宏来保存函数名。
标签: c c-preprocessor
是否可以编写一个解串字符串文字参数的 gcc 宏?我知道# 可能会发生相反的情况。可以逆转吗?
例如,__func__ 以字符串文字的形式计算出当前函数的名称。我可以去掉它周围的双引号吗?
【问题讨论】:
标签: c c-preprocessor
不,无法使用标准 C/C++ 预处理器将 "foo" 转换为 foo。如果你绝对需要这个,你需要创建一个外部预处理程序,类似于 Qt 使用其moc 工具所做的。
并非完全切题,但 D 语言正好有这个功能——它被称为mixins。您可以在编译时执行任意字符串处理代码,并使用 mixin 关键字将结果“粘贴”到源文件中。
【讨论】: