Eu estava lendo sobre SIOF de um livro e deu um exemplo:
//file1.cpp
extern int y;
int x=y+1;
//file2.cpp
extern int x;
int y=x+1;
Agora minha pergunta é:
No código acima, as seguintes coisas acontecerão?
ao compilar file1.cpp, o compilador deixa y como está, ou seja, não aloca armazenamento para ele.O compilador aloca armazenamento para x, mas não o inicializa.Ao compilar file2.cpp, o compilador deixa x como está, ou seja, não aloca armazenamento para ele.O compilador aloca armazenamento para y, mas não o inicializa.Ao vincular file1.o e file2.o, agora permita que file2.o seja inicializado primeiro, agora:
X obtém o valor inicial de 0? ou não é inicializado?