0

我应该总是使用#if指令加上#endif吗?

  1. 如果是的话 - 如果我只使用会出现什么问题#if
  2. 如果没有 - 当我只使用#if时,当组合#if/ #else

谢谢你。

4

3 回答 3

4

如果您没有匹配的#endif, (或#else... #endif),您的代码将无法编译。

于 2012-06-06T11:58:53.503 回答
4
1.If yes - what could be a problem if I only use #if?

正如其他人所提到的,如果您仅使用#if 并且不将其与#endif 匹配,则预处理器将失败,并将显示为编译器错误。

2.If no - why I use only #if,and when combination #if/#else?

即使在#if/#else 的情况下,最后也应该有一个#endif。否则它将无法正常工作。您可以自己尝试并检查。

除了检查和定义宏之外,这些最常用于条件编译。请在下面找到一些相关链接(基本级别):

http://gcc.gnu.org/onlinedocs/cpp/Ifdef.html
http://en.wikipedia.org/wiki/C_preprocessor
http://www.phanderson.com/C/preprocess.html

于 2012-06-06T12:16:06.370 回答
3

是的。

没有#endif预处理器就不会知道#if块的结尾。

于 2012-06-06T11:58:52.713 回答