在C/C++中有两种类型的宏:
#define ABC /* usual */
Run Code Online (Sandbox Code Playgroud)
UND
#define FUNC(a) /*function-like*/
Run Code Online (Sandbox Code Playgroud)
但是我怎么能取消他们呢?
更新:那么"不变的宏"和"类似函数的宏"之间没有区别吗?
In *_*ico 19
#undef ABC
#undef FUNC
Run Code Online (Sandbox Code Playgroud)
#undef"取消"以前的#define.效果就好像您从未有过#define特定标识符的前一个.请注意,#defines不尊重范围,因此最好只在需要时使用它们.
另请注意,如果一个宏标识符使用"通常"语法而另一个使用"类似函数"语法则无关紧要.#define ABC并且#define ABC(A)都定义了一个名为的宏ABC.如果你有两个,没有#undef其中一个,最新的一个"覆盖"另一个.(如果发生这种情况,某些编译器可能会发出警告.)
Job*_*Job 12
#undef ABC
#undef FUNC
Run Code Online (Sandbox Code Playgroud)