gpt4 book ai didi

c - 总是不需要将全局变量和静态变量初始化为 0?

转载 作者:太空狗 更新时间:2023-10-29 16:24:53 25 4
gpt4 key购买 nike

C 标准保证全局变量和静态变量如果未初始化,则始终为 0

这是我的问题:未初始化的全局变量和静态变量转到程序中的 BSS 段。所以所谓的0应该是all-bit 0

对于整型变量,all-bit 0 将被计算为 0。浮点变量,如果遵循 IEEE 754,也是 0.0。但是对于指针来说,空指针不一定是all-bit 0,全局指针的初始化也是这样:

int* p = NULL;

有什么区别只是:

int *p;

最佳答案

标准保证具有静态存储持续时间且没有其他初始化器的指针将被初始化为空指针,无论可能涉及什么位模式。

同样的基本思想也适用于浮点和整数类型——它们也保证被初始化为 0 或 0.0。实现可以将其留给 BSS 将所有位设置为 0 的事实,当且仅当它“知道”这样做会产生正确的值。

关于c - 总是不需要将全局变量和静态变量初始化为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17012707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com