gpt4 book ai didi

C90 - 在全局和函数范围内初始化数组

转载 作者:太空宇宙 更新时间:2023-11-04 07:59:05 24 4
gpt4 key购买 nike

我想知道在全局范围内和在函数范围内分别初始化数组的属性。

假设:

char arr[4];

int main() {
.....
}

这个数组中的值是什么?

这个选项的作用:

int main() {
char arr[4];
....
}

最后一个例子和这个有什么区别吗:

int main() {
....
}

int func1() {
char arr[4];
....
}

在不同的编译器中结果会改变吗?谢谢

最佳答案

在一个良好的系统中,文件范围数组将被初始化为全零。函数内数组的可预测性较低;很有可能它只会继承当时堆栈中的任何 scrud。

一般来说,可以安全地假设为桌面系统编译的任何现代工具链都将“彬彬有礼”,但如果是为嵌入式系统编译,您可能需要自己检查 bss 部分是否初始化为全为零。该初始化是处理器(有时是电路板)特定支持包的一部分,您不能总是相信它已经完成。

关于C90 - 在全局和函数范围内初始化数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47964356/

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