uint8_t, uint16_t и uint32_t не распознаются в PCLint
При запуске PCLint на основе кода кажется, что типы данных uint8_t, uint16_t и uint32_t не распознаются. Например:
uint8_t variable1 = 0;
Следующие ошибки получены от Lint:
129: declaration expected, indentifier 'uint8_t' ingnored
129: declaration expected, indentifier 'variable1' ingnored
10: Expecting identifier or other declarator
19: Useless declaration
Все, что использует 'variable1', отображаются следующие ошибки:
40: Undeclared identifier 'variable1'
63: Expected an lvalue
Есть идеи?
0 ответов
Возможные причины, по которым PC-Lint не распознает uint8_t
, uint16_t
а также uint32_t
:
#include <stdint.h>
отсутствует в вашем файле исходного кодаPC-Lint анализирует ваш код как компилятор "дампинга". Чтобы узнать о целочисленных типах фиксированной ширины, определенных C99, требуется включение соответствующего файла заголовка. Это может быть либо
<stdint.h>
или<inttypes.h>
. Некоторые компиляторы могут знать о целочисленных типах фиксированной ширины даже без включения этих файлов заголовков.Заголовок
<stdint.h>
не может быть найден PC-LintPC-Lint оценивает ваш код независимо от вашего конкретного компилятора. Однако он не имеет собственного набора стандартных заголовков. Поэтому ему необходимо знать, где он найдет системные заголовки, например
<stdint.h>
в вашей файловой системе (обычно это путь установки компилятора). Обычно это делается путем предоставления файла конфигурации для конкретного компилятора (например,co-gcc.lnt
) в командной строке. Gimpel Software (авторы PC-Lint) предоставляют большой набор этих файлов на своем веб-сайте: https://gimpel.com/html/ptch90.htm