C で同じ名前の 2 つのグローバル変数を宣言しました。同じストレージ クラスで同じ名前の変数を宣言できないため、エラーが発生するはずです。
C++ で確認しました — コンパイル時エラーが発生しますが、C では発生しません。なぜですか?
コードは次のとおりです。
int a;
int a = 25;
int main()
{
return 0;
}
で確認してください: Ideone で書かれたコード
多分これが原因だと思う
しかし、これは C++ には当てはまりません。C++ では、変数がグローバル スコープで宣言されているかオート スコープで宣言されているかに関係なく、宣言と定義が同時に行われていると思います。
誰かがそれにもう少し光を当てることができますか.
変数を 2 回定義して値を 2 回指定すると、エラーが発生します (1 つの宣言と 1 つの定義ではなく)。
コード :現在 2 つの定義
int a;
int a;
int a;
int a = 25;
int main()
{
return 0;
}