在代码库上运行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 :(得分:0)
PC-Lint无法识别uint8_t
,uint16_t
和uint32_t
的可能原因:
#include <stdint.h>
PC-Lint像“ dumpest”编译器一样解析您的代码。为了了解C99定义的固定宽度整数类型,它需要包含适当的头文件。可以是<stdint.h>
或<inttypes.h>
。即使不包含这些头文件,某些编译器也可能知道固定宽度整数类型。
PC-Lint无法找到标头<stdint.h>
PC-Lint独立于特定的编译器来评估您的代码。但是,它没有带来自己的标准标头集。因此,它需要知道在文件系统中通常会在哪里找到诸如<stdint.h>
之类的系统头(通常是编译器安装路径)。这通常是通过在命令行上提供特定于编译器的配置文件(例如co-gcc.lnt
)来完成的。 Gimpel Software(PC-Lint的作者)在其网站上提供了大量此类文件:https://gimpel.com/html/ptch90.htm