我注意到了几个Coverity(静态分析工具)错误类型'未初始化的标量变量',这些错误具有很高的影响力.其中很多只是没有初始化的整数.
将它们初始化为零与默认情况下C++的作用有什么不同?
R S*_*ahu 12
C++是否自动将整数初始化为零?
对于自动变量:
有些编译器可能会这样做,但标准并不要求它.符合标准的实现可能会使它们成为未初始化的垃圾值.
对于static变量:
除非另有明确初始化,否则必须将它们初始化为零.
默认情况下,C++不会将整数变量初始化为零.
在调试模式下编译项目时,某些编译器可能将它们清零或填充一些默认值.在发布模式下,通常不会发生.
静态变量有一个例外,但默认情况下可以安全地假设任何unitialized都包含一个随机值.
注意未初始化的变量.发现这种错误很难,可能会浪费很多时间.常见症状:程序在调试模式下工作正常,但在发布时表现奇怪.
| 归档时间: |
|
| 查看次数: |
5349 次 |
| 最近记录: |