在C(GCC编译器)中,全局变量的默认存储类是什么?
让我共享一个代码,例如:

int i;

void f()
{ --statements--}

main()
{ --- set of statements--- }

如果我说变量i是静态的而不是外部的,那么我说的对吗?

最佳答案

在此代码中,i具有静态存储持续时间和外部链接。
存储持续时间是指变量存储的生存期静态存储持续时间意味着变量存在于程序的整个生命周期中。
链接是指名称和对象之间的关系外部链接意味着具有外部链接的名称的所有实例都表示同一对象您的int i;将匹配来自另一翻译单元的声明。
关键字extern int i;在不同的上下文中用作存储持续时间说明符和链接说明符,因此不清楚询问变量是否static相反,应该考虑变量的存储持续时间和链接。

关于c - 默认全局变量的存储类(gcc编译器)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40356368/

10-11 23:04
查看更多