//wings20180330: 1、在keil開(kāi)發(fā)環(huán)境中,main.C文件直接調(diào)用disp.c的 fnDisp()函數(shù),其中,fnDisp()函數(shù)只有定義,即沒(méi)有定義聲明,也沒(méi)有引用聲明,但編譯器不會(huì)報(bào)error,只會(huì)報(bào)“declared imiplicityly”的warning。 2、給fnDisp()函數(shù)加關(guān)鍵字static,則報(bào)error。 解決方法1 #include <stdlib.h> 解決方法2:在調(diào)用該函數(shù)的前頭加了一句“extern double abs(double __x); ” 另外fabs函數(shù)不用加外部聲明直接調(diào)用也沒(méi)報(bào)警,偏偏是abs函數(shù)就有這個(gè)問(wèn)題呢。看了看math.h文件,只見(jiàn)頭文件里面有對(duì)fabs函數(shù)的外部聲明,而abs函數(shù)只有“ inline double abs(double __x) { returnfabs(__x); }”的聲明。 inline修飾的函數(shù),只能在本.c文件使用。所以外部調(diào)用abs的時(shí)候,會(huì)報(bào)警告 |
|