Tag:

如何在C ++中实现no-op宏(或模板)?

如何在C ++中实现no-op宏? #include #ifdef NOOP #define conditional_noop(x) what goes here? #else #define conditional_noop(x) std::cout << (x) #endif int main() { conditional_noop(123); } 我希望在定义NOOP时不执行任何操作,并在未定义NOOP时打印“123”。

宏和function相同的名称

我有以下代码 #define myfunc(a,b) myfunc(do_a(a), do_b(b)) void myfunc(int a, int b) { do_blah(a,b); } int main() { int x = 6, y = 7; myfunc(x,y); return 0; } 我希望预处理器只在调用时扩展函数myfunc。 预处理后所需的代码如下所示: void myfunc(int a, int b) { do_blah(a,b); } int main() { int x = 6, y = 7; myfunc(do_a(x),do_b(y)); return 0; } 问题是函数定义也像这样扩展 void myfunc(do_a(int a), […]

如何找出cl.exe的内置宏

有谁知道我怎样才能找出cl.exe的内置/预定义宏? 例如,对于gcc,以下命令行将列出所有编译器的内置宏 gcc -dM -E – </dev/null 编辑:我对类似于gcc的方式感兴趣,就是“询问实际的编译器”。 谢谢

C宏来创建字符串

替代标题(以帮助搜索) 将预处理程序标记转换为字符串 如何从C宏的值创建一个char字符串? 原始问题 我想使用C #define在编译时构建文字字符串。 该字符串是为调试,发布等而更改的域。 我想要一些这样的事情: #ifdef __TESTING #define IV_DOMAIN domain.org //in house testing #elif __LIVE_TESTING #define IV_DOMAIN test.domain.com //live testing servers #else #define IV_DOMAIN domain.com //production #endif // Sub-Domain #define IV_SECURE “secure.IV_DOMAIN” //secure.domain.org etc #define IV_MOBILE “m.IV_DOMAIN” 但预处理器不评估“”内的任何内容 有没有解决的办法? 这是一个好主意吗?

C宏和括号中的参数使用

例 #define Echo(a) a #define Echo(a) (a) 我意识到这里可能没有显着差异,但为什么你会想要在宏体内包含a括号内的a ? 它是如何改变它的?