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

用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就没有这方面的问题.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值