0
A
回答
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
3
是的。
如果没有#endif
预处理器将不会知道#if
块的末尾。
4
如果您没有匹配的#endif
(或#else
... #endif
),您的代码将无法编译。
相关问题
- 1. #if #else #endif指令
- 2. 如何将C预处理程序仅应用于某些(#if/#endif)指令?
- 3. C#预处理器指令(#if和#endif)不起作用。编译错误
- 4. 在#if #endif指令之间切换
- 5. VB.NET预处理器指令
- 6. Gfortran预处理器指令
- 7. C#预处理器指令
- 8. C++预处理指令
- 9. 预处理指令“使用”
- 10. DDK预处理器指令
- 11. 预处理指令导入基于对C#中的预处理指令平台
- 12. 使用预处理器指令在Visual Studio中调试WindowsService #if
- 13. 如何C#编译的#if预处理指令代码?
- 14. 预处理器指令之间的区别#if和#ifdef
- 15. 预处理器指令#if与正常之间的区别
- 16. 预处理指令#if和非类型模板参数
- 17. objective-c预处理器指令
- 18. Unity预处理器指令错误?
- 19. 调试和预处理指令
- 20. GHC/flymake在预处理指令挂
- 21. nuget库中的预处理器指令
- 22. C#预处理器指令范围
- 23. C++预处理指令限制
- 24. 预处理!gfortran中的DEC $指令
- 25. 预处理器指令定义的功能宏与多个if/else if语句
- 26. Objective-C的预处理指令发出
- 27. 问题上预处理指令
- 28. 预处理指令内定义?
- 29. xib中的预处理器指令?
- 30. 预处理器指令:#elif未定义?
'#'if'and#endif'不是宏,但预处理指令。 –
我无法想象为什么你认为这是一个问题。你有没有遇到过忽略'#endif'看起来会派上用场的情况? –
另外,我不明白你的第二个问题。你的意思是“何时”而不是“为什么”? –