Implicit declaration of function ‘xxxx’ is invalid in C99” 警告的解决办法
2014-04-07 11:23
591 查看
该警告明确告诉我们在C99的规范中,不允许出现隐含声明的用法。这是C99规范中增加的规则,不过即便不遵守此规则,也仅仅是一个警告而已。
什么是隐含声明呢,也很简单,就是你调用函数的c文件中,没有正确包含对应的头文件。一般来说,c,c++都会将类,函数,的声明放在头文件中,这样在需要的时候包含对应头文件就可以了,在编译器的前期处理中,需要通过头文件来建立一些函数,变量,类的表,如果调用到了声明中没有的函数,编译器会认为是有危险的,显而易见,如果直接调用函数,在运行期间会出现程序异常。
因此强烈建议大家不要忽略这个警告,更不要象个别文章建议的那样把编译环境配置成C89,这样隐患依然存在。
什么是隐含声明呢,也很简单,就是你调用函数的c文件中,没有正确包含对应的头文件。一般来说,c,c++都会将类,函数,的声明放在头文件中,这样在需要的时候包含对应头文件就可以了,在编译器的前期处理中,需要通过头文件来建立一些函数,变量,类的表,如果调用到了声明中没有的函数,编译器会认为是有危险的,显而易见,如果直接调用函数,在运行期间会出现程序异常。
因此强烈建议大家不要忽略这个警告,更不要象个别文章建议的那样把编译环境配置成C89,这样隐患依然存在。
相关文章推荐
- xcode 中出现 Implicit declaration of function 'xxxx' is invalid in C99” 警告的解决办法
- Xcode解决“Implicit declaration of function 'XXX' is invalid in C99” 警告或报错
- iOS开发Implicit declaration of function 'XXXX' is invalid in C99” 报错问题
- xCode中去除“Implicit declaration of function 'sysctl' is invalid in C99” 警告
- Implicit delcaration of function 'sysctlbyname'is invalid in c99 问题及解决办法
- xCode中去除“Implicit declaration of function 'sysctl' is invalid in C99” 警告
- 编译错误解决:implicit declaration of function 'close' is invalid in C99
- xCode中去除“Implicit declaration of function 'setxattr' is invalid in C99” 警告
- Implicit Declaration of function 'glBindVertexArrayOES' is invalid in c99
- iOS Implicit declaration of function XXX is invalid in C99”
- 关于Xcode6编译变更 “Implicit declaration of function 'sysctl' is invalid in C99” 报错问题
- "Implicit declaration of function 'sysctl' is invalid in C99” 报错问题
- 报错:Implicit declaration of function 'NSFileTypeForHFSTypeCode' is invalid in C99
- Implicit declaration of function 'NSFileTypeForHFSTypeCode' is invalid in C99
- Implicit declaration of function 'inet_addr' is invalid in C99
- xcode9报 Implicit declaration of function 'require' is invalid in c99 的错误
- iOS Implicit declaration of function XXX is invalid in C99”
- 关于C语言中Implicit declaration of function ‘XXXX’ is invalid in C99警告
- 即时通讯(环信)-bug Implicit declaration of function 'NSEaseLocalizedString' is invalid in C99
- error : implicit declaration of function CC_MD5 is invalid in C99