inq*_*ive 2 c arrays embedded
在C中,我已经读过,半初始化的数组将用其余元素填充零(不管整数或char数组).
例如:
int arr[10] = {3};
arr[4] 如果初始化则为0,如果未初始化则为垃圾值.
arr[4]
我的问题是,根据编译器选项,上述所有C编译器(或)的附加工作是否可能会发生或不发生?我在Code composer studio(TI的IDE)工作.我想确保这适用于所有案例和所有编译器.
小智 10
行为由C标准指定.但是,如果您担心特定编译器的行为,为什么不编写测试?
小智 7
这是根据C标准,任何遵循C标准的编译器都必须这样做.但是,并非所有编译器都符合100%标准,如果您不确定,则必须检查是否符合此类编程器.
qrd*_*rdl 5
位于数据段(全局和单位范围)中的变量会自动初始化为全零.
除非显式初始化,甚至部分初始化,否则堆栈变量(函数和块作用域)将填充垃圾.在部分初始化的情况下,提醒被归零.
这是C标准,所有编译器都必须遵守它.
归档时间:
15 年,10 月 前
查看次数:
3736 次
最近记录:
13 年,9 月 前