在c / c ++中是否可以执行以下操作:
#define (_asm int 3;) (exit(1))
因此,在我的代码中的任何地方都会在编译时替换此行。 我知道这是不好的做法但是有可能。
欢呼声
答案 0 :(得分:10)
您可以进行全局搜索并替换您选择的编程编辑器(或IDE),并将_asm int 3
更改为例如FOO
,然后像这样定义一个宏FOO
:
#if 1 // <<<- change this test to determine how `FOO` is expanded
#define FOO _asm int 3
#else
#define FOO exit(1)
#endif
答案 1 :(得分:0)
不,这不是一个有效的预处理器符号,因此它不起作用。
当然,您可以通过使用外部工具(或任何编辑器的搜索和替换功能)轻松地完成此替换。