extern
私の質問は、 C で関数をキーワードで参照する必要があるのはいつかということです。
実際にこれをいつ使用すべきかわかりません。プログラムを作成しているときに、使用するすべての関数は、インクルードしたヘッダー ファイルを通じて利用可能になります。では、ヘッダー ファイルで公開されてextern
いないものにアクセスすることがなぜ便利なのでしょうか?
どのように動作するかについて私が誤って考えている可能性がありますextern
。もしそうであれば、訂正してください。
また、extern
ヘッダー ファイルでキーワードなしでデフォルト宣言を行う場合は、何かする必要がありますか?
ベストアンサー1
extern
リンケージを変更します。 キーワードを使用すると、関数/変数は他の場所で使用可能であると想定され、解決はリンカーに委ねられます。
extern
関数と変数には違いがあります。
変数の場合、変数自体をインスタンス化しません。つまり、メモリを割り当てません。これは別の場所で実行する必要があります。したがって、変数を別の場所からインポートする場合は重要です。
関数の場合、これはコンパイラーにリンクが extern であることを伝えるだけです。これはデフォルトであるため (キーワードを使用して、static
関数が extern リンケージを使用してバインドされていないことを示します)、明示的に使用する必要はありません。