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'看起來會派上用場的情況? –
另外,我不明白你的第二個問題。你的意思是「何時」而不是「爲什麼」? –