У меня есть проект, который скомпилирован на нескольких платформах, один из которых - Visual C++. Я заметил, что мы часто нарушаем сборку, потому что разработчик использовал errno без включения errno.h, но поскольку они работают в Visual Studio, а их источник включает stddef.h, прямо или косвенно, он не поддавался компиляции для их.MSVS 2015 ставит errno в stddef.h?
Почему errno определен в этом заголовке? Какой хороший способ поймать эту проблему в начале нашего цикла, т.е. е. все еще внутри Visual Studio?
В вашем проекте наведите курсор на символ 'errno', нажмите F12, и VS покажет вам, где обозначен символ. Это начало. –
Я пытаюсь получить сбой компиляции, когда errno.h был забыт. – Enno
Другой заголовок может содержать '', поэтому он работает. Нет стандартного кросс-платформенного способа проверить, включен ли какой-либо конкретный заголовок, особенно, поскольку другой заголовок может включать файл, поэтому он фактически будет включен. –