有谁能解释在哪种情况下会出现这些错误?

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

#ifdef SIC_CSI_NET
short CsiNetInit(void);
#endif


错误:


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


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

最佳答案

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

然后,当他们看到实际的原型时,区别就显而易见了:intshort

关于c - lint错误18“符号'CsiNetInit(void)'重新声明(精度)与第21行冲突,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10450361/

10-09 17:06