lint error 18“Symbol'CsiNetInit(void)'重新声明(精度)与第21行冲突

时间:2012-05-04 14:00:04

标签: c lint

请问我们可以在哪些情况下解释这些错误?

我有以下代码,lint显示以下错误:

#ifdef SIC_CSI_NET
short CsiNetInit(void);
#endif

错误:

  

“符号'CsiNetInit(void)'重新声明(精确)与第21行冲突

第21行没有任何内容我可以看到用于评论的**。

2 个答案:

答案 0 :(得分:2)

可能在处理这些行的其中一个编译单元中,SIC_CSI_NET未定义,与引发此警告的文件相反,但使用了该函数。在这种情况下,Lint根本看不到原型,带来不同的警告(可能是718“符号'CsiNetInit'未声明,假设返回int”),并假定原型为int CsiNetInit(void);

当它看到实际原型时,差异变得明显:intshort

答案 1 :(得分:0)

查看CsiNetInit()的实际定义;也许它的原型指定了不同于short的返回类型?