Есть несколько вопросов и вопросов по этому вопросу на этом сайте. Я попробовал ответы (включая заголовочные файлы), они не решают мою проблему.NULL необъявленный идентификатор
Я перенес проект с VS2013 на VS2015. После компиляции я получаю сообщение об ошибке: «C2065« NULL »: необъявленный идентификатор». Это не произошло в VS2013. Когда я перехожу к своему коду и «наводил» на «NULL», окно отображается «#define NULL 0». Я могу щелкнуть правой кнопкой мыши по NULL и открыть «определение peek». Файл vcruntime.h открывается и показывает определение NULL. (Этот файл отмечен как доступный только для чтения.)
Почему я продолжаю получать эту ошибку для каждого появления NULL (+200 раз)?
Edit:
#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