2
如果我嘗試編譯文件(error_c11.cpp),其內容是:警告與#ERROR預處理指令有撇號
#if 0
#error This shouldn't be a problem
#endif
用命令行:
gcc error_c11.cpp
我得到以下警告(然後關於主其他一些鏈接錯誤):
error_c11.cpp:2:20: warning: missing terminating ' character
#error This shouldn't be a problem
相反,編譯具有相同或Visual Studio不會給出任何警告。這是gcc
(使用v4.9.3)中的bug,還是'
中的字符不允許在#error
預處理器指令中使用,其他編譯器是否更寬容?
根據語法,這是#誤差* pp-tokens newline *,其中* pp-tokens *是一個或多個*預處理 - 標記*,其中包括*字符文字*。我可以看到這是無效的語法。 – chris
嗯,這實際上是一個_warning_。似乎即使c預處理器傾向於靜態代碼分析的AI功能。 –
嘗試將您的消息放在雙引號中。 –