私は本からSIOFについて読んでいて、それは例を与えました:
//file1.cpp
extern int y;
int x=y+1;
//file2.cpp
extern int x;
int y=x+1;
今私の質問は:
上記のコードでは、次のことが起こりますか?
- file1.cppのコンパイル中、コンパイラはyをそのままにします。つまり、ストレージを割り当てません。
- コンパイラはxにストレージを割り当てますが、初期化しません。
- file2.cppをコンパイルしている間、コンパイラはxをそのままにします。つまり、ストレージを割り当てません。
- コンパイラはyにストレージを割り当てますが、初期化はしません。
- file1.oとfile2.oをリンクするときに、file2.oを最初に初期化するようにします。したがって、
xは初期値0を取得しますか?または初期化されませんか?