さて、「少し古い」本(「Cプログラミング言語」、第2版、デニス・リッチー著)を読んで、私は次のように交差しました:
外部変数は、関数の外部で1回だけ定義する必要があります。これにより、ストレージが確保されます。変数は、それにアクセスする各関数でも宣言する必要があります
そして、私は-何のようでしたか?
「変数は、それにアクセスしたい各関数でも宣言する必要があります」。それから、私はもう一度ショックを受けました:
int max;
/* ... */
int main()
{
extern int max;
/* ... */
}
そしてもう1つ-何?!
私の知る限り(明らかに、それはそれほど多くはなく、十分ではありません)、extern
どこかでグローバル変数を定義し、別のファイルを介してそれにアクセスしたい場合にのみ意味があります(再度定義しないでください)。
それで:
- または他の関数の中
extern int max
でこれのポイントは何ですか?main
- 標準は、これが必須であると本当に言っていますか(この例では、それを使用する各関数でこの最大値を宣言する必要がありますか?)
- これはC++でも同じですか(それがC ++タグを配置した理由です)?こんなものを見るのは初めてです。
注:これは、関数内で静的変数をexternとして宣言する使用法と同じではありませんか?