本網站有幾個關於此問題的問題和意見。我試過給出的答案(包括頭文件),它們不能解決我的問題。NULL未聲明的標識符
我將我的項目從VS2013遷移到VS2015。編譯後,我收到錯誤:「C2065'空':未聲明的標識符」。這在VS2013中沒有發生。當我轉到我的代碼並將鼠標懸停在「NULL」上時,將顯示一個窗口「#define NULL 0」。我可以右鍵單擊NULL並打開「窺視定義」。 vcruntime.h文件打開並顯示NULL的定義。 (此文件被標記爲只讀。)
爲什麼我每次發生NULL(+200次)都會收到此錯誤?
編輯:
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
@Serhio它是完全有效的C.你從哪裏得到這個想法? – Lundin
@Serhio IIRC'#define NULL 0'是C的標準。爲什麼它不是? – Magisch
@Lundin [7.17](http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf)「...它擴展爲一個實現定義的空指針常量... 「。這不意味着這樣的常量應該有類似'((void *)0)'的指針類型嗎? – Sergio