【发布时间】:2008-12-18 10:08:46
【问题描述】:
为了学习和演示,我需要一个宏来打印它的参数并评估它。我怀疑这是一个非常常见的案例,甚至可能是一个常见问题解答,但我找不到实际的参考资料。
我当前的代码是:
#define PRINT(expr) (fprintf(stdout, "%s -> %d\n", __STRING(expr), (expr)))
然后:
PRINT(x & 0x01);
它工作正常,但我不确定 __STRING 宏的合法状态,特别是因为它位于私有 __ 命名空间中。
所以,我的问题:
- 有没有更好的方法来编写这个宏?
- __STRING 是标准的/伟大的/邪恶的吗?
- 如何使用现有的搜索工具查找有关 __STRING 的信息? SO 的搜索引擎只搜索包含字符串的任何内容 :-(
【问题讨论】:
-
我过去在搜索时遇到过类似的问题。 “.net”曾经是一个大的。
-
您可以使用 google 搜索 StackOverflow,方法是使用 google 的站点:参数 :) 例如“__string site:stackoverflow.com”(没有返回任何内容)。