加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 是否定义了静态初始化实现的顺序?

发布时间:2020-12-16 09:53:06 所属栏目:百科 来源:网络整理
导读:动态初始化可以是有序的或无序的: Dynamic initialization of a non-local variable with static storage duration is either ordered or unordered. 这并没有说明静态初始化的顺序.静态初始化的顺序是实现定义的吗? 解决方法 静态初始化并不意味着“使用
动态初始化可以是有序的或无序的:

Dynamic initialization of a non-local variable with static storage
duration is either ordered or unordered.

这并没有说明静态初始化的顺序.静态初始化的顺序是实现定义的吗?

解决方法

静态初始化并不意味着“使用静态存储持续时间初始化变量”.这是一个更有限的术语,在§3.6.2[basic.start.init] / p2中定义.

Together,zero-initialization and constant initialization are called static initialization; all other initialization is dynamic initialization. Static initialization shall be performed before any dynamic initialization takes place.

常量初始化在同一段中定义,基本上涉及初始化到编译时常量.

因为静态初始化涉及初始化编译时常量并且保证在任何动态初始化发生之前发生,所以顺序并不重要. (实际上,对于静态存储持续时间的对象,初始值可能放在编译后的可执行文件的数据段(用于零初始化的bss段)中,并在程序启动时由操作系统直接加载,所以说“订单” “没有多大意义.”任何“静态初始化惨败”可能出现的事实上都涉及动态初始化.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读