您的位置:首页 > 其它

关于 implicit declaration of function 一点经验之谈

2012-11-25 17:14 916 查看
用gcc编译c程序的时候 经常会出现

implicit declaration of function '...' 的warning

偶经过这几天的经验,发现主要有2种情况会产生这种warning

1 没有把函数所在的c文件生成.o目标文件

2 在函数所在的c文件中定义了,但是没有在与之相关联的.h文件中声明
除了以上情况之外,据我所知至少还有另外的情况:所调用的函数的原型与所传的实参类型不匹配.比如下列代码,其头文件都声明过了,但是就是有警告,其编译选项为-O2
-Wall -fPIC -ldl -lusb:

semtimedop(idSem, &SemOp, 1, &strcTS);

但是如果加入原型声明就可以了:

int semtimedop(int semid, struct sembuf *sops, unsigned nsops, struct timespec *timeout);

以上在RedHat Linux10测试通过.值得一提的是,在Solaris10就没有这方面的问题.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐