#define代码行到别的东西

时间:2012-11-29 12:48:39

标签: c++ c

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

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

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

欢呼声

2 个答案:

答案 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)

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

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