C/C++宏观评价顺序
可能的重复:
C 预处理器,字符串化宏的结果
很快:
#include <iostream>
float pi(){ return 3.14; }
#define PRINT(x) std::cout << #x << std::endl;
#define PI pi()
int main(int argc, char *argv[])
{
PRINT(PI)
PRINT(pi())
return 0;
}
结果:
PI
pi()
有什么办法可以只获取宏参数中的预处理数据吗?得到结果
pi()
pi()
?
编辑:
我没有注意到这个问题: C 预处理器,将结果字符串化宏的 复制...
Possible Duplicate:
C Preprocessor, Stringify the result of a macro
Shortly:
#include <iostream>
float pi(){ return 3.14; }
#define PRINT(x) std::cout << #x << std::endl;
#define PI pi()
int main(int argc, char *argv[])
{
PRINT(PI)
PRINT(pi())
return 0;
}
Result:
PI
pi()
Is there any way to get only preprocessed data in macro argument? To get as a result
pi()
pi()
?
EDIT:
I haven't noticed this question: C Preprocessor, Stringify the result of a macro
Duplicate...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
添加另一个辅助宏:
Add another helper macro: