ARC 下的 Objective-C 是否保证将静态和 ivar 初始化为零?



查看Apple的官方过渡到ARC文档,它说"堆栈变量"现在初始化为零值。 然而,在我的快速、非正式测试中,静态变量和 ivar 似乎也被初始化为零;有些人表示相信他们绝对会自动归零。但是,静态变量和 ivar 不是堆栈变量。苹果是否发布了关于静态变量和 ivar 的不同法令?

此外,函数中的静态初始化和函数外部的静态初始化之间有区别吗?

由于语言的语义,static变量被清零 — 作为 C 的严格超集,行为是有保证的。 IVAR 也保证在初始化时归零(参见项目符号 3(。

最新更新