【问题标题】:Destringification in the gcc preprocessorgcc 预处理器中的去字符串化
【发布时间】:2015-08-04 10:36:25
【问题描述】:

是否可以编写一个解串字符串文字参数的 gcc 宏?我知道# 可能会发生相反的情况。可以逆转吗?

例如,__func__ 以字符串文字的形式计算出当前函数的名称。我可以去掉它周围的双引号吗?

【问题讨论】:

标签: c c-preprocessor


【解决方案1】:

不,无法使用标准 C/C++ 预处理器将 "foo" 转换为 foo。如果你绝对需要这个,你需要创建一个外部预处理程序,类似于 Qt 使用其moc 工具所做的。

并非完全切题,但 D 语言正好有这个功能——它被称为mixins。您可以在编译时执行任意字符串处理代码,并使用 mixin 关键字将结果“粘贴”到源文件中。

【讨论】:

  • 谢谢。很好的答案!
猜你喜欢
  • 1970-01-01
  • 2019-06-21
  • 1970-01-01
  • 2022-09-24
  • 2011-09-24
  • 2011-11-15
  • 2016-11-09
  • 2017-09-18
  • 2011-10-22
相关资源
最近更新 更多