1

在代码库上运行 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

有任何想法吗?

4

1 回答 1

1

uint8_tPC-Lint 无法识别和uint16_t的可能原因uint32_t

  1. #include <stdint.h>您的源代码文件中缺少

PC-Lint 像“最笨”的编译器一样解析你的代码。为了了解 C99 定义的固定宽度整数类型,它需要包含适当的头文件。这可以是<stdint.h><inttypes.h>。即使没有包含这些头文件,一些编译器也可能知道固定宽度的整数类型。

  1. <stdint.h>PC-Lint 找不到标头

PC-Lint 独立于您的特定编译器评估您的代码。但是,它并没有带来自己的一组标准标题。因此它需要知道它会<stdint.h>在你的文件系统中找到系统头文件的位置(通常是编译器安装路径)。这通常通过co-gcc.lnt在命令行提供编译器特定的配置文件(例如)来完成。Gimpel Software(PC-Lint 的作者)在其网站上提供了大量这些文件:https ://gimpel.com/html/ptch90.htm

于 2019-05-12T15:07:05.513 回答