#if预处理器指令可以嵌套在C ++中吗?

时间:2011-07-13 11:52:08

标签: c++ c-preprocessor preprocessor-directive

我对c ++中的预处理器指令有疑问:

例如:

#ifndef QUESTION

//some code here

#ifndef QUESTION

//some code here

#endif

#endif

我们可以这样使用它吗?C ++编译器能否以正确的方式匹配ifndefendif

3 个答案:

答案 0 :(得分:98)

是的,我们可以。 #endif语句与之前没有相应#if的{​​{1}} #ifdef#ifndef等匹配。

e.g。

#endif

答案 1 :(得分:41)

是的,您可以嵌套#if / #endif块。一些C编码样式会告诉你写

#ifdef CONDITION1
# ifdef CONDITION2
# endif
#endif

使用空格来表示嵌套级别。

答案 2 :(得分:0)

在您的代码中,除非您#undef QUESTION,否则将丢弃#ifndef QUESTION部分。

祝你好运!