このサイトには、この質問に関するいくつかの質問があります。私は答えを(ヘッダーファイルを含む)与え、彼らは私の問題を解決しないでください。NULL宣言されていない識別子
プロジェクトをVS2013からVS2015に移行しました。コンパイルした後、私はエラーを取得しています: "C2065 'NULL':宣言されていない識別子"。これはVS2013では発生しませんでした。私のコードに行き、 "NULL"の上に "ホバー"すると、ウィンドウは "#define NULL 0"と表示されます。私はNULLを右クリックして "peek definition"を開くことができます。ファイル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