假设我有以下代码:
int foo () {
int const x = 0;
return x;
}
编译器是否允许将 x 移动到全局范围?
在下面的场景中呢?res2
可能因优化而异?
std::set<int const *> addrs;
int foo () {
int const x = 0;
addrs.insert(&x);
return addrs.size();
}
void bar () {
int res1 = foo();
int res2 = foo();
}