我看到以下代码:
static __SECTION("set_global") struct something * p = NULL;
我很困惑。 “静态”是指此C文件的本地范围。该行上方是有关set_global:全局变量的ELF部分的注释。
因此,这基本上使变量p成为全局变量,并且可以被任何源代码访问吗?
最佳答案
静态不标识本地作用域,这意味着仅翻译单元(源文件)作用域。static
关键字标识要全局分配的变量,其寿命是整个程序运行的时间。
__SECTION(“ name”)将变量放入“ name”部分,但不影响变量的可见性。
我相信这:
static __SECTION("set_global") struct something * p = NULL;
将p声明为指向某项结构的指针,该结构的生命周期等于程序的运行时间,该生命周期存储在名为“ set_global”的节中,并且在整个过程中(最多基于声明的位置)在其中声明文件。
关于c - static和set_global在一起:怎么来的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9334397/