繁体   English   中英

返回 C 中静态常量变量的地址

[英]Return the address of a static const variable in C

像下面这样在 C 中返回静态常量变量的地址是否安全?

uint8_t *return_static_const_addr(void)
{
    static const uint8_t values[2] = {0x01, 0x02};

    return values;
}

它在运行时会有一个常量地址,所以,是的,它是安全的。

这里的静态常量变量是局部变量,因此它不会存储在堆栈中,因此通常不是线程安全的。 这也取决于编译器。 如果您正在编写此代码,则返回静态常量变量将是安全的,例如,对于 C++11,本地静态的这种动态初始化是线程安全的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM