在改掉所有的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
