私はヘッダーファイルを持っています、abc.hを想定しています
static int function1();
このヘッダーファイルをabc.cに含め、関数を定義して使用しました。
static int function1()
{
< function definition>
}
コンパイル後に警告が表示されます:
warning: function1 declared static but never defined
静的を削除せずに警告を削除するにはどうすればよいですか。ありがとう。
静的関数はヘッダーファイルで宣言できますが、これにより、ヘッダーファイルを含む各ソースファイルに関数の独自のプライベートコピーが作成されますが、これはおそらく意図したものではありません。
abc.hファイルを他の.cファイルに含めていないのですか?
関数を静的として宣言するため、関数が含まれるall .cファイルで定義する必要があります。
良い習慣:定義されているソースファイルで静的関数を宣言します(プロトタイプも提供してください)。
このように、関数はそのファイルに対してのみ表示されます。このような可視性の問題により、コードの競合を減らすことができます!そのため、.cファイルでプロトタイプと静的関数定義を提供するだけです。ヘッダーファイルに静的関数を含めないでください。 .hファイルは外部消費用です。
複製: Cの静的関数