c - 全局变量属于c中的哪种存储类型?
问题描述
想知道在C编程语言中声明一个不带static的全局变量,属于auto、extern、static、reg中的哪个存储类型?
解决方案
这样的变量具有外部链接和静态存储持续时间。它可以由常量表达式或字符串字面量初始化。
来自 C 标准(6.2.2 标识符的链接)
5 如果函数标识符的声明没有存储类说明符,则它的链接将完全确定,就好像它是使用存储类说明符 extern 声明的一样。如果对象标识符的声明具有文件范围且没有存储类说明符,则其链接是外部的。
和(6.2.4 对象的存储期限)
3 一个对象,其标识符在没有存储类说明符_Thread_local 的情况下声明,并且具有外部或内部链接或具有存储类说明符静态,具有静态存储持续时间。它的生命周期是程序的整个执行过程,它的存储值仅在程序启动之前初始化一次
最后(6.7.9 初始化)
4 具有静态或线程存储持续时间的对象的初始化程序中的所有表达式应为常量表达式或字符串文字。
推荐阅读
- reactjs - React Hooks useEffect 保存最后一个状态,不会用新状态更新它。它以两种不同的状态运行两次
- r - 如何将数据框列中的秒数转换为 hms 格式?
- c++ - 在 C++ 中将 bool* 转换为 int* 可能存在哪些问题
- cluster-analysis - 聚类的同质性与不同的变量有关
- javascript - 如何从轻量级图表中获取价格价值?
- excel - Excel VBA .Move 不保持格式
- ios - iOS 15 中的 SwiftUI .searchable - .navigationBarDrawer(displayMode: .always)
- python - 允许您的机器人读取 discord.py 中变量的多个值
- typescript - VSCode 删除了我的 ts 代码。如何关闭此功能?
- json - Json 连续拟合数字并在每个 1-9 数字前添加一个 0