c语言函数没有被调用会给里面的变量分配内存空间吗?

一个子函数如果没有被主函数调用会给那个子函数的变量分配内存吗
是在使用中可能会被调用,也可能不会,比如按一个键就调用,那内存是一开始就分配还是等按键后再分配?

子函数的变量是在子函数中被定义的。
如果变量不是静态变量,
那么定义的变量会在函数调用的时候, 将其内存空间分配在栈(stack)中。
不调用的时候不会分配空间。
如果变量是静态变量,在编译的时候就会分配内存空间
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-25
取决于你的编译器,如果编译器有这种优化功能的话,没用的代码可能会被去掉,正常编译的话,不管有用没用,都会分配的。
第2个回答  2011-02-25
不会,只有调用后才分配内存,调用结束后自行释放
相似回答