C 局部静态变量何时存储在内存中?

C 局部静态变量何时存储在内存中?,c,C,语言在什么时候需要编译器将局部静态变量存储到内存中?是在编译时吗?或者在运行时调用包含局部静态变量的函数时 int* GetMyVariable() { static int A = 50; return &A; } 如果调用GetMyVariable(),我希望只能使用“A”的内存。如果静态分配不能像这样工作,那么动态分配是我唯一的选择吗?谢谢你抽出时间 本地静态变量何时存储在内存中 这是在执行程序之前完成的 (C99,6.2.4p3)“其标识符由外部 或内部链接,或

语言在什么时候需要编译器将局部静态变量存储到内存中?是在编译时吗?或者在运行时调用包含局部静态变量的函数时

int* GetMyVariable()
{
    static int A = 50;
    return &A;
}
如果调用GetMyVariable(),我希望只能使用“A”的内存。如果静态分配不能像这样工作,那么动态分配是我唯一的选择吗?谢谢你抽出时间

本地静态变量何时存储在内存中

这是在执行程序之前完成的

(C99,6.2.4p3)“其标识符由外部 或内部链接,或使用存储类说明符static 具有静态存储持续时间。其生存期为整个执行 其存储值只初始化一次, 在程序启动之前。”


C中的静态变量存在于程序的整个执行过程中。因此,您可以随时安全地获取该变量的地址。

在编译时为该变量分配存储。