4

在 c/c++ 中是否有可能执行以下操作:

#define (_asm int 3;) (exit(1))

因此,在我的代码中的任何地方,这一行都将在编译时被替换。我知道这是不好的做法,但有可能吗?

干杯

4

2 回答 2

10

您可以进行全局搜索并用您选择的编程编辑器(或 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
于 2012-11-29T12:51:11.567 回答
0

不,这不是一个有效的预处理器符号,所以它不起作用。

当然,您可以通过使用外部工具(或任何编辑器的搜索和替换功能)轻松完成此替换。

于 2012-11-29T12:51:00.690 回答