在改掉所有的warning时老报一个implicit declaration of function 的警告错误,上网查了下原因,原来有两种情况会产生这种情况

1  没有把函数所在的c文件生成.o目标文件。
2  在函数所在的c文件中定义了,但是没有在与之相关联的.h文件中声明。

3  其头文件都声明过了,所调用的函数的原型与所传的实参类型不匹配。

 

我的情况:

       我在学习中遇到的是第二种情况,简单描述一下:A,B两个文件,A为所用函数function()所在的文件,function()函数在A.c文件中写了功能,但未在A.h文件中进行声明该函数。

B在文件中使用该函数时,虽然引了A.h,但是就会报这个问题。所以只需要在A.h中声明下该函数就行,否则B根本不知道这个函数的存在,就会出现这样的报错。

  创建一个事务要遵循一条原则:我在本地造了一个物件,如果只是本地使用,本地知道你有,就直接使用即可。若这个物件别的地方也想用,那么你就需要在一个地方告诉别人我有这么个物件,就需要声明,而这个地方就是头文件。

 

 

http://blog.chinaunix.net/uid-21558711-id-34462.html