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