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:

  1. #include <stdint.h> отсутствует в вашем файле исходного кода

    PC-Lint анализирует ваш код как компилятор "дампинга". Чтобы узнать о целочисленных типах фиксированной ширины, определенных C99, требуется включение соответствующего файла заголовка. Это может быть либо<stdint.h> или <inttypes.h>. Некоторые компиляторы могут знать о целочисленных типах фиксированной ширины даже без включения этих файлов заголовков.

  2. Заголовок <stdint.h> не может быть найден PC-Lint

    PC-Lint оценивает ваш код независимо от вашего конкретного компилятора. Однако он не имеет собственного набора стандартных заголовков. Поэтому ему необходимо знать, где он найдет системные заголовки, например<stdint.h>в вашей файловой системе (обычно это путь установки компилятора). Обычно это делается путем предоставления файла конфигурации для конкретного компилятора (например,co-gcc.lnt) в командной строке. Gimpel Software (авторы PC-Lint) предоставляют большой набор этих файлов на своем веб-сайте: https://gimpel.com/html/ptch90.htm

Другие вопросы по тегам