请问我们可以在哪些情况下解释这些错误?
我有以下代码,lint显示以下错误:
#ifdef SIC_CSI_NET
short CsiNetInit(void);
#endif
错误:
“符号'CsiNetInit(void)'重新声明(精确)与第21行冲突
第21行没有任何内容我可以看到用于评论的**。
答案 0 :(得分:2)
可能在处理这些行的其中一个编译单元中,SIC_CSI_NET
未定义,与引发此警告的文件相反,但使用了该函数。在这种情况下,Lint根本看不到原型,带来不同的警告(可能是718“符号'CsiNetInit'未声明,假设返回int”),并假定原型为int CsiNetInit(void);
。
当它看到实际原型时,差异变得明显:int
与short
。
答案 1 :(得分:0)
查看CsiNetInit()
的实际定义;也许它的原型指定了不同于short
的返回类型?