浏览Apple的官方过渡到ARC文档,它说“堆栈变量”现在被初始化为零值。然而,在我的快速、非正式的测试中,静态变量和ivars似乎也被初始化为零;一些人表示相信它们绝对是自动归零的。然而,静态变量和依瓦尔不是堆栈变量。苹果是否发布了关于静态变量和ivars的不同法令?
另外,函数中静态变量的初始化和函数外部静态变量的初始化有区别吗?
发布于 2017-05-25 22:59:54
由于语言的语义,static变量被归零-作为C的严格超集,行为是有保证的。ivars are also guaranteed to be zeroed out upon initialization (见项目符号3)。
https://stackoverflow.com/questions/44183555
复制相似问题