I was reading about SIOF from a book and it gave an example :
//file1.cpp
extern int y;
int x=y+1;
//file2.cpp
extern int x;
int y=x+1;
Now My question is :
In above code, will following things happen ?
The initialization steps are given in 3.6.2 "Initialization of non-local objects" of the C++ standard:
Step 1: x
and y
are zero-initialized before any other initialization takes place.
Step 2: x
or y
is dynamically initialized - which one is unspecified by the standard. That variable will get the value 1
since the other variable will have been zero-initialized.
Step 3: the other variable will be dynamically initialized, getting the value 2
.