考虑以下程序:(请参阅此处的现场演示。)
#include <iostream>
inline double fun()
{
return 3.0;
}
extern double m;
double d2=m;
int main()
{
std::cout<<d2;
}
double m=fun();
我期望程序的输出为 3.0,但它给了我输出 0。为什么?
看起来变量 d2 是静态初始化的?
不应该动态初始化吗?
我已经在 g++ 4.8.1、4.9.2 和 MSVS 2010 上对其进行了测试,并得到 0 作为输出。