[C/C++]PCLINT错误集锦

  • 1.指针类型不匹配 -返回指针的类型的函数后面需要加()

  • 2.未定义错误 - 1.可能变量的名称改变了,需要更新名称, 2. 可能需要去.h中包含头文件(一般很少) 3.有些未定义错误一次只能检查出一个,但其实是一连串的错误,需要连续编译查找

  • 3.函数未定义 - 有些函数可能换成了全新的函数,需要用SourceInsight进行查找

  • 4.函数参数缺少 - 可能是函数更新了,需要讨论

  • 5.Link过程中发生的错误:编译只是一个.c和他包含的.h之间的关联,Link是每个.h和对应的.c文件之间的关联

  • 6.很多时候,会报一些根本无法理解的英文错误,可能的原因是在编写代码的时候,没有用空格而是用了Tab。需要去UT目录下,更新CMakeList.txt中对应的.c行

  • 7.如果lint打开后闪退,可以跑一下下面的这个bat文件,run_nas_icp_ci_local.bat(记得全部跑完)

  • 8.Type DisMatch:类型不匹配,比如一个char赋值给一个结构体就会报错,或者入参,应该是一个指针,但是传了一个结构体

  • 9.Warning Ellipsis (…) Assumed:一般是函数入参最后一个多了一个逗号,并且这个错误的附近行会报很多其他错误,可以省略关注(清掉后其他错误也会消失)

  • 10.Symbol Not Accessed :变量定义和初始化后没有使用,组合的错误是Location Cited In Prior Message,或者可能是使用不当,(比如传入的是指针,内
    部变成直接对指针进行赋值)

  • 11.not made in the presence of a prototype, 可能是.h文件中的函数申明中的参数类型并没有在.h中进行包含(所以, 一般函数参数如果是枚举类型,主要还是
    用VOS_UINT8来替代会比较好。另一种可能是使用了错误的名称(比如把枚举的名称当做枚举类型来使用了)

  • 12.Expected an Expression, found xxx,:表示原本期望一个表达式,但是最终却找到了奇怪的字符,一般是编程的时候,手速过快导致的问题(删除这些特殊符号即可(比如多
    输入了一个/)等)

  • 13.violates MISRA Advisory rule 60:在if语句中没有return,同时也没有else结束(可能有else if)

  • 14.ControlFlows Into Case Default :在case分支中有没有进行控制的分支(比如if,没有else,或者有else,但是里面没有语句)

  • 15.Alloc Not Large Enough:长度不够,一般是PS_MEM_ALLOC和PS_ALLOC_MSG用错了

  • 16.Can’t Open.hfile 在 lint目录下,对应的.h文件路径配置文档中进行配置即可

  • 17.如果lint过后发现多处很多莫名错误,很有可能是某一个.h中漏了一个分号

  • 18.如果某个类型莫名其妙是int,lint报错转成int失败,则可能是.h文件没有顺利包含的原因( unsigned int to int)

  • 19.Undeclare identify:如果枚举类型永成了枚举名称会报这个错误,在函数中也会报expect ",’ or ")"错误

  • 20.如果PCLINT右侧竖线为红色,表示有lint错误,双击可以查看(有时候可能是lint文件的路径发生了问题)

  • 21.implicit declaration of function 有两种情况会产生这种警告1 没有把函数所在的c文件生成.o目标文件2 在函数所在的c文件中定义了,但是没有在与之相关联的.h文件中声明

你可能感兴趣的:(C/C++)