为了学习和演示,我需要一个打印其参数的宏and对其进行评价。我怀疑这是一个非常常见的案例,甚至可能是一个常见问题解答,但我找不到实际的参考资料。
我当前的代码是:
#define PRINT(expr) (fprintf(stdout, "%s -> %d\n", __STRING(expr), (expr)))
进而:
PRINT(x & 0x01);
它工作正常,但我不确定 __STRING 宏的合法状态,特别是因为它位于私有 __ 命名空间中。
所以,我的问题是:
- 有没有更好的方法来编写这个宏?
- __STRING 是标准/伟大/邪恶吗?
- 如何利用现有的搜索工具来查找__STRING? SO 的搜索引擎只搜索包含字符串的任何内容:-(
就像是
#define PRINT(expr) (fprintf(stdout, "%s -> %d\n", #expr, (expr)))
可能就是你想要的。 # 是字符串化运算符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)