英镑符号在这行代码中表示什么?
#define CONDITION(x) if(!(x)){ HandleError(#x,__FUNCTION__,__LINE__);return false;}
这就是它的召唤方式:
CONDITION(foo != false);
答案 0 :(得分:9)
宏参数之前的单个#
将其转换为字符串文字。
#define STRINGIFY(x) #x
STRINGIFY(hello) // expands to "hello"
在您的示例中,字符串为"foo != false"
,因此错误消息显示正在测试的代码。
宏中两个令牌之间的双##
将它们组合成一个令牌
#define GLOM(x,y) x ## y
GLOM(hello, World) // expands to helloWorld