Question.5
Two translation units have dependent statics:
file_a.cpp:
int global_a = 10;
file_b.cpp:
extern int global_a; int global_b = global_a + 1; // Depends on global_a
Is global_b guaranteed to be 11?
global_b
Select Answer
Yes -- globals are initialized in declaration order
No -- initialization order across translation units is undefined; if global_b is initialized before global_a, it reads uninitialized memory (0) and becomes 1
Yes -- the linker sorts by dependency
No -- but only with optimizations enabled