当前位置:   article > 正文

刨根问底:C++中未初始化全局变量为什么都会被编译器自动置0_全局变量未赋初值时 自动赋0

全局变量未赋初值时 自动赋0

有这个疑问很久了,今天搜了一上午资料想知道为什么。我们都知道,C++ 11 ISO标准中,未初始化的全局变量会被置0,原文如下。


Variables with static storage duration (3.7.1) or thread storage duration (3.7.2) shall be zero-initialized (8.5)
before any other initialization takes place.

以上摘自C++11 ISO文档从以上这段话不难看出,确切说,全局变量是先被初始化为0,然后才进行其他的初始化。


好,既然标准如此,这么一个规定,到底是个死规定,还是有背后的技术原因?


查阅了很多文档。找到了一些信息,大体摘录一些。


Security: leaving memory alone would leak information from o
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/106506
推荐阅读
相关标签
  

闽ICP备14008679号