跨 TU 的全局变量的初始化顺序
在翻译单元内,指定了全局变量的初始化顺序,未指定跨翻译单元的初始化顺序。
所以用以下文件编程
-
Foo.cpp 中
#include <iostream> int dummyFoo = ((std::cout << "foo"), 0);
-
bar.cpp
#include <iostream> int dummyBar = ((std::cout << "bar"), 0);
-
main.cpp 中
int main() {}
可能产生输出:
foobar
要么
barfoo
这可能导致静态初始化订单 Fiasco 。