1

EXTERN キーワードを指定せずに main 関数の最初に変数を宣言すると、静的グローバル変数 (そのファイル内でのみアクセス可能) として扱われますか、それとも他のファイルからアクセスできるようになりますか? 例えば:

#include<stdio.h>
int k;
main()
{

}
4

3 に答える 3

4

変数kは技術的には他のファイル (モジュール) で使用できますが、他のファイルにextern int k宣言がない限り、それらは変数について認識せず、コンパイル時エラーはk他のファイルで不明であることを示します。

于 2013-06-19T22:35:48.643 に答える
1

外部定義と宣言、デフォルトの初期化をゼロにします。

int k;

外部宣言のみ、他の場所で定義および初期化

extern int k;

外部定義、初期化および宣言

int k = 2;
于 2013-06-19T22:39:00.740 に答える
0
static int k;

これは、変数 k がファイル スコープでアクセス可能であり、外部には到達できないことをコンパイラに伝えます。

extern int k;

これは、変数 k が他のファイルの変数 k にリンクされていることをリンカーに伝えます。

int k;

これはグローバル スコープであり、2 つのファイルで 2 回宣言することはできません。

于 2013-06-19T23:29:47.590 に答える