【note】stm32 keilMDK出現warning: function XX declared implicitly
阿新 • • 發佈:2019-02-01
warning: #223-D: function "CLR_TX_DATA" declared implicitly
解決方法。
以上面錯誤提示為例:
1 找到定義函式 CLR_TX_DATA() 的原始檔 ,這裡假設在 a.c 中;
2 在 a.h 中最後宣告一下 CLR_TX_DATA(),即新增(假設此函式無返回值無引數)
void CLR_TX_DATA(void);
3 再次編譯 剛才的 warning 即可消失。
參考自
KEIl編譯STM32的時候,出現了一點問題!!
程式編譯的時候通過了!!但是顯示警告:
test.c(45): warning: #223-D: function "Get_Temp"declaredimplicitly
在望山查了好久,終於明白:
這是因為Get_Temp沒有在你所引用的檔案里加載,雖然你在標頭檔案裡聲明瞭一遍!!
但是還是有錯誤,
你只需要在你所使用的檔案裡面在宣告一次,問題迎刃而解!!
另外
在VC中,好像不會有此warning ,它應該是intel編譯器特有的警資訊:
如果無法為非 void 返回型別的 C 函式找到正確的原型,則"英特爾® C++ 編譯器"會列印以下警告訊息:
warning #266: function declared implicitly
此問題只會在 C 語言函式中發生。在 C++ 函式中,必須宣告正確的原型才能成功編譯和連結,所以不會發生上述問題。
如以下C程式
main()
{
printf("ok\n");
}
就會產生警告
正確的作法是寫出函式的定義或#include函式定義的標頭檔案,這樣就沒問題