在 C / C ++中有两种类型的宏:
#define ABC /* usual */
und
#define FUNC(a) /*function-like*/
但我怎么能取消他们呢?
更新:那么“不变的宏”和“类似函数的宏”之间没有区别吗?
答案 0 :(得分:16)
#undef ABC
#undef FUNC
#undef
"cancels" out a previous #define
。效果就好像您从未有过特定标识符的先前#define
。请注意#define
不尊重范围,因此最好只在需要时使用它们。
另请注意,如果一个宏标识符使用“通常”语法而另一个使用“类似函数”语法则无关紧要。 #define ABC
和#define ABC(A)
都定义了一个名为ABC
的宏。如果你有两个,没有#undef
其中一个,最新的一个“覆盖”另一个。 (如果发生这种情况,某些编译器可能会发出警告。)
答案 1 :(得分:12)
#undef ABC
#undef FUNC