Mar*_*ark 5 c static
可能重复: gcc是否自动将静态变量初始化为零?
函数内的静态声明对象是否保证用0?初始化?
0
例如:
int func(void) { static int x; ... }
标准是否承诺x = 0在第一次调用时func()?
x = 0
func()
pmg*_*pmg 5
在C99标准说:
5.1.2执行环境 ...在程序启动之前,应初始化静态存储中的所有对象(设置为其初始值).
5.1.2执行环境
...在程序启动之前,应初始化静态存储中的所有对象(设置为其初始值).
并且它还说使用static限定符定义的局部变量具有"静态存储",并且在没有初始化的情况下,所有对象都为它们采用正确类型的值0.
static
Bla*_*iev 1
简短的回答是,是的。
静态的、未初始化的变量驻留在.bss可执行文件的段中,操作系统在程序启动时(在main调用之前)对它们进行分配和清零。
.bss
main
归档时间:
14 年,6 月 前
查看次数:
169 次
最近记录: