我的代码中有一个很重的对象,它是静态的。我想知道是否将成员变量的初始化移到构造函数之外,它们是每次执行还是一次执行?
struct test
{
int a;
int b;
};
void foo() {
static test T;
T.a=123;
T.b=341;
}
int main()
{
foo();
foo();
foo();
}
Will
T.a=123;
T.b=341;
每次调用foo()都会执行?
这不是初始化,这是分配,是的,它将。仅创建对象(包括初始化)一次。
static test T = {123,341}; //happens only once.