c - 默认全局变量的存储类(gcc 编译器)?

标签 c variables gcc storage-class-specifier

在C、(GCC Compiler)中,全局变量的默认存储类是什么?

让我分享一个代码例如:

int i; 

void f()
{ --statements--}

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

如果我说变量 i 是 static 而不是 extern 是否正确?

最佳答案

在此代码中,i 具有静态存储持续时间,以及外部链接

存储持续时间 是指变量存储的生命周期。 静态存储期是指变量在程序的整个生命周期内都存在。

Linkage 是指名称和对象之间的关系。 外部链接 意味着具有外部链接的名称的所有实例都表示同一对象。您的 int i; 将匹配来自另一个翻译单元的声明 extern int i;

关键字static在不同的上下文中用作存储持续时间说明符和链接说明符,因此询问变量是否为static并不明确。相反,应考虑变量的存储持续时间和链接。

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

相关文章:

C 程序,printf char* 崩溃

c++ - 定义指针变量

c++ - Fedora 22 - 编译 - __atomic_is_lock_free

c - MPI 派生数据类型

c - 获取 float 的有符号位

ios - Objective-C iOS 应用程序中的 C 风格函数

动态 CSS 中的 PHP 变量

variables - Sass 变量默认作用域

gcc - gcc 在 c99 模式下是否错误地执行隐式函数声明?

c - 查找 `undefined reference` 错误的根本原因