Я нахожу некоторые проблемы в том порядке, в котором заголовки включения определены в файлах c / c ++, когда я выполняю pclint.
Скажите, что включает в себя порядок,
#include <sys/timerfd.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <fcntl.h>
#include <termios.h>
#include <errno.h>
#include <stdarg.h>
#include <string.h>
и когда я выполняю pclint, он дает ошибку, скажем, FILE не объявлен и т. д.
Позже я изменил порядок включения на
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <fcntl.h>
#include <termios.h>
#include <errno.h>
#include <stdarg.h>
#include <string.h>
#include <sys/timerfd.h>
я видел, что многие ошибки исчезли. Я не могу понять, почему это поведение. Я использую PC-lint для C / C ++ (NT) Vers. 8.00w.
я отметил путь включения, как, скажем, + libdir (D: \ timesys \ азота6x \ toolchain \ include)
Благодарю вас
Brijesh
Предположительно, включение заголовочных файлов имеет небольшое значение, хотя такой случай встречается редко. Некоторые включаемые файлы используют типы, перечисления или что-то еще, что определено только в другом включаемом файле.
Например, в Linux некоторые функции требуют включения нескольких заголовков. Некоторые из программ, использующих их, потерпят неудачу, если вы включите эти заголовки в неправильном порядке.
Вроде как последний этап связывания. Вы должны установить библиотеки в правильном порядке, иначе вы можете получить неразрешенные зависимости.
Если я найду пример, я опубликую его здесь.
РЕДАКТИРОВАТЬ:
Нашел пример. Qt. У Qt самый нелепо сложный набор заголовков. Если вы включите, например, opengl.h перед QtOpenGL.h, это даст вам ошибку компиляции, потому что внутри заголовков Qt он проверяет наличие opengl. По какой-то причине QtOpenGL.h должен стоять первым.
Других решений пока нет …