原則として、関数の外部で定義された変数(つまり、グローバル変数、名前空間変数、およびクラス静的変数)は、main()が呼び出される前に初期化されます。翻訳ユニット内のこのような非ローカル変数は、宣言順に初期化されます
上記は私の講師によるクラスノートの行です。
#include <iostream>
using namespace std;
int a=99;
int b;
int main(int argc, char *argv[])
{
cout<<a<<endl;
cout<<b<<endl;
return 0;
}
b=100;
これを実行しているときにエラーが発生しました。main()が呼び出される前に「b」が100に割り当てられているというのは本当ではありませんか?C++ requires a type specifier for all declarations