关于错误提示conflicting types for “XXX”

  • Post author:
  • Post category:其他




在写这篇文章之前,首先需要说明一下我所记录问题的产生地--来自Objective-c基础教程(第二版)书中例子演练。



这个问题提示,是在我运行书中第三章shapes-object程序时产生的。



在书中,首先介绍了传统的面向过程编成的方法,继而介绍了obj-c面向对象的编程方法,是一个简单的画图程序(其实在这里的实现很简单,只是显示在某个坐标矩形框内显示某个颜色图形,如红色的原型、绿色的矩形、蓝色的椭圆等)。正常的输出例子应该如下:


2015-03-19 21:06:46.104 shapesObject[414:6731] drawing a circle at (0,0,0,0) in red


2015-03-19 21:06:46.106 shapesObject[414:6731] drawing a rectangle at (1,1,1,1) in green


2015-03-19 21:06:46.107 shapesObject[414:6731] drawing an egg at (2,2,2,2) in blue


2015-03-19 21:06:46.107 shapesObject[414:6731] drawing a Triangle at (3,3,3,3) in blue

Program ended with exit code: 0



但是第一遍运行时,我发现运行失败,有许多类似于 Implicit declaration of function ‘drawShapes’ is invalid in C99   和     conflicting types for ‘drawShapes’ 之类的错误提示,后来发现可能原因如下:



1.没有先做函数声明,而函数位于main()之后。在main函数声明前声明了函数原型之后,就可以解决该问题。



2.在自己声明的某些方法的顺序上出了问题。比如该方法中调用了某个类,但是该类的接口声明在方法之后。将类接口声明放在方法之前,就搞定。



3.类的.h文件里的声明和.m文件中的定义参数有差别。



排查上述原因后,该错误提示就可以解决。



版权声明:本文为qq_25638791原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。