1. 程式人生 > >【note】stm32 keilMDK出現warning: function XX declared implicitly

【note】stm32 keilMDK出現warning: function XX declared implicitly

warning: #223-D: function "CLR_TX_DATA" declared implicitly

解決方法。

以上面錯誤提示為例:

 1  找到定義函式 CLR_TX_DATA() 的原始檔 ,這裡假設在 a.c  中;

  a.h 最後宣告一下 CLR_TX_DATA(),即新增(假設此函式無返回值無引數)

                     void  CLR_TX_DATAvoid);

 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函式定義的標頭檔案,這樣就沒問題