函数内部变量申请空间问题
c++吧
全部回复
仅看楼主
level 11
gameloftyou
楼主
void test1(
bool flag)
{
int a;
if(flag)
return;
int b,c,d,e,f,g;
}
void test2(
bool flag)
{
int a,b,c,d,e,f,g;
if(flag)
return;
}
假如传递给test1和test2的flag均为true,不考虑编译器优化,那么它们执行时所占用的空间是不是一样的?
2013年10月23日 09点10分
1
level 10
whygod3
用mal|oc的方式看看它的实例占空间有多少即可。
2013年10月23日 09点10分
2
level 12
贴吧用户_0aX3aA7128
什么叫所占空间?
2013年10月23日 11点10分
3
gameloftyou
测试了下,如果是test1函数,如果执行到if(flag) return;时就退出了,那么后面的b,c,d,e,f,g;应该都不会被构造(我用类测试的,基本类型应该也一样)
2013年10月23日 11点10分
gameloftyou
占用空间的话我猜是一样,也就是说函数执行时会为所有变量申请空间(此时未构造)而不论变量声明的先后顺序
2013年10月23日 11点10分
贴吧用户_0aX3aA7128
回复 gameloftyou :我说这两个函数执行时候占用空间都是 4K,你信吗?
2013年10月23日 12点10分
gameloftyou
回复 乐天派的小耗子 :别呀
2013年10月23日 12点10分
1