“Implicit declaration of function 'callbackBlock' is invalid in C99”
-函数“callbackBlock”的隐式声明在C99中无效
该警告明确告诉我们在C99的规范中,不允许出现隐含声明的用法。这是C99规范中增加的规则。
什么是隐含声明呢,也很简单,就是你调用函数的c文件中,没有正确包含对应的头文件。一般来说,c,c++都会将类,函数,的声明放在头文件中,这样在需要的时候包含对应头文件就可以了,在编译器的前期处理中,需要通过头文件来建立一些函数,变量,类的表,如果调用到了声明中没有的函数,编译器会认为是有危险的,显而易见,如果直接调用函数,在运行期间会出现程序异常。
因此强烈建议大家不要忽略这个警告,更不要象个别文章建议的那样把编译环境配置成C89,这样隐患依然存在。
解决方法:
1.具体情况:
检查你使用的方法是否有 已经提前做了声明 。
例如是 方法
+ (void)searchShop:(NSString *)shopName
pageIndex:(NSInteger)pageIndex
pageSize:(NSInteger)pageSize
callback:(***)callbackBlock
error:(***)errorBlock {}报警
你需要在检查 你的callback:(***)callbackBlock 等有没有在.h文件或者开始声明的地方写全或者一致;
2. 可以参考
https://blog.youkuaiyun.com/sinat_23907467/article/details/80665837
其他参考链接:
https://blog.youkuaiyun.com/dehengxu/article/details/11537693
https://blog.youkuaiyun.com/a308843141/article/details/49926799
本文详细解析了C99规范下Implicit declaration of function 'callbackBlock' is invalid in C99警告的原因及解决办法。强调了在C99标准中,隐式声明函数被视为不合法,并提供了如何确保所有函数被正确声明的步骤。
1万+

被折叠的 条评论
为什么被折叠?



