gcc 警告: 関数が使用されていますが定義されていません 質問する

gcc 警告: 関数が使用されていますが定義されていません 質問する

警告が表示されます: 。ヘッダー ファイルに とfunction used but not definedあります。ヘッダー ファイルは に含まれています。ヘッダー ファイルにあるすべてのインライン関数を ファイルに配置したいと思います。次のコードから、問題の概要がわかります。static __inline__a.ha.c.c

元のコード:

ああ:

static __inline__ function1(){
    function definition;  
}

変更しました:
ああ:

static function1();

交流:

#include "a.h"

static function1(){
   function definition;
}

上記を実行すると、次の警告が表示されました:

   warning: function function1 is used but not defined. 

なぜこのような警告が表示されるのか教えてください。警告が表示されないように、すべての__inline__関数を に転送したいと思います。.c

  warning: function1 is could not be inlined, code size may grow.

前もって感謝します

ベストアンサー1

関数を静的として宣言しました。これは、関数が現在のコンパイル単位内でのみ可視であることを意味します。言い換えると、実装はファイル内でのみ可視です。他の .c ファイルから関数が見えるように、との両方でキーワードa.cを削除する必要があります。戻り値を指定する必要があります。たとえば、戻り値を指定しなかった場合は暗黙的に戻り値になるためです。statica.ha.cvoid function1();int

おすすめ記事