语言在什么时候需要编译器将本地静态变量存储到内存中?是在编译时吗?或者在运行时调用包含本地静态变量的函数?
int* GetMyVariable()
{
static int A = 50;
return &A;
}
如果调用GetMyVariable(),我希望只能为'A'使用内存。如果静态不能像这样工作,那么动态分配是我唯一的选择吗?谢谢你的时间。
答案 0 :(得分:1)
何时存储在内存中的本地静态变量
这是在执行程序之前完成的。
(C99,6.2.4p3)“标识符用外部声明的对象 或内部链接,或与存储类说明符静态 有静态存储时间。它的生命周期是整个执行 程序及其存储的值只初始化一次, 在程序启动之前。“
答案 1 :(得分:1)
在整个程序执行过程中,C中存在一个静态变量。因此,您可以随时安全地获取该变量的地址。