初期化なしでグローバル変数を再宣言する場合、初期化を伴うグローバル変数を再宣言する場合、グローバル変数を再宣言して 2 回異なる初期化を行う場合に、C と C がどのように動作するかを見ていきます。さらに、ローカル変数を使用して上記の組み合わせを繰り返します。
#include <stdio.h> int var; int var; int main(){ printf("Var = %d",var); return 0; }
Var = 0
#include <iostream> using namespace std; int var; int var; int main(){ cout<<"Var = "<<var; return 0; }
Compilation Error: int var; main.cpp:3:5: note: ‘int var’ previously declared here
Result: - C では、初期化せずにグローバル変数を再宣言できます。値は 0 のままです。 C では、変数が再宣言されたことを示すコンパイル エラーが発生します。
#include <stdio.h> #include <stdio.h> int main(){ int var; int var; printf("Var = %d",var); return 0; }
error: redeclaration of ‘var’ with no linkage
#include <iostream> using namespace std; int main(){ int var; int var; cout<<"Var = "<<var; return 0; }
error: redeclaration of ‘int var’
Result: - C も C++ も、初期化を完了せずにローカル変数を再宣言することはできません。どちらのプログラムもコンパイルに失敗します。
#include <stdio.h> int main(){ int var; int var=10; printf("Var = %d",var); return 0; }
Var = 10
#include <iostream> using namespace std; int var; int var=10; int main(){ cout<<"Var = "<<var; return 0; }
main.cpp:7:9: error: redeclaration of ‘int var’ int var;
結果: -C を使用すると、初期化されていないグローバル変数の再宣言が可能になります。 C プログラムのコンパイルに失敗しました。
#include <stdio.h> int var; int var=10; int main(){ printf("Var = %d",var); return 0; }
error: redeclaration of ‘var’ with no linkage
#include <iostream> using namespace std; int main(){ int var; int var=10; cout<<"Var = "<<var; return 0; }
error: redeclaration of ‘int var
Result: - C も C も、初期化されていない場合でも、ローカル変数の再宣言を許可しません。どちらのプログラムもコンパイルに失敗しました
以上がC プログラムでのグローバル変数の再宣言の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。