gcc预处理器中的destringification

PSk*_*cik 5 c c-preprocessor

是否可以编写一个解析字符串文字参数的gcc宏?我知道相反的可能性#.可以逆转吗?

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

Krz*_*ski 6

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

不完全是主题,但D语言恰好具有此功能 - 它被称为mixins.您可以在编译时执行任意字符串处理代码,并使用mixin关键字将结果"粘贴"到源文件中.