Tag: lint

如何在c中清除这个lint警告?

我有以下代码: #define NUMBER_OF_ROOMS if((unsigned int)(NUMBER_OF_ROOMS – 2) > 20) { // do something here } 但是我得到了一个lint警告: Warning 506: Constant value Boolean ,这是什么意思以及如何修复它?

C99指定的初始化程序重复索引在构建输出或lint中根本没有标记

前几天我在指定的初始化程序中玩了一下,我惊讶地发现,多次使用相同的索引是有效的。 更重要的是,当我这样做时,它甚至没有产生编译器警告,错误甚至信息声明,甚至PC-Lint似乎也不关心(我认为最让我感到惊讶)。 我想知道编译器是否有理由在这种情况下甚至没有提供信息消息,或者是否有其他编译器/ lint /等。 可用于捕获或标记此选项的选项。 使用的工具:Renesas RX标准工具链v1.2.0.0(C99),gcc版本4.4.3(Ubuntu 4.4.3-4ubuntu5.1)(在VM中),Lint-NT 9.00i 例如,我正在处理的一些旧代码#defines一堆命令,然后创建一个命令结构数组(这里大大简化),循环查找并使用该特定命令: #define CMD_RMEM 0 #define CMD_WMEM 1 #define CMD_XCRC 2 #define CMD_NULL 3 typedef struct { const char cmdID; const char* cmdStr; } CMD; const CMD commands[] = { {CMD_RMEM,”RMEM”}, {CMD_WMEM,”WMEM”}, {CMD_XCRC,”XCRC”}, {CMD_NULL,”NULL”}, }; 然后我想起了我在某处看到的指定初始化语法,并认为除了检测重复的命令索引之外,它还可以为数组中项目的排列提供更大的灵活性,例如: //(same #def’s & typedef as above) const CMD commands[] = […]

任何捕捉C代码中愚蠢错误的工具?

我有一个令人讨厌的拼写错误浪费了我的时间和我的同事的时间,它是这样的: for (i = 0; i < blah; i++); // <- I had a semi-colon here, that's the bug! { // Some awesome logic here } 首先,这是非常尴尬的,其次,我不应该重复这一点。 我对C相对较新。在Java中,我想我可以使用FindBugs来捕获这些错误,我应该使用什么工具来代码? 皮棉?

在c:func(void)与func()

当C函数不接受任何参数时,是否必须通过语言规则使用“void”参数声明/定义它? 当参数列表中没有任何内容时,PC-Lint似乎有问题,我想知道它是否是我不知道的语言语法中的东西。 编辑:我刚刚发现了一个重复的(后面的傻瓜?它首先出现)问题, C void参数 ,它有更多的答案和解释。