C和C ++:自动结构的部分初始化
例如,如果somestruct
有三个整数成员,我一直认为在C(或C ++)函数中执行此操作是可以的:
somestruct s = {123,};
第一个成员将初始化为123,最后两个成员将初始化为0.我经常对自动数组执行相同的操作,写入int arr[100] = {0,};
以便将数组中的所有整数初始化为零。
最近我在GNU C参考手册中读到:
如果不初始化结构变量,则效果取决于它是否具有静态存储(请参阅存储类说明符)。如果是,则使用0初始化具有整数类型的成员,并将指针成员初始化为NULL; 否则,结构成员的价值是不确定的。
有人可以告诉我C和C ++标准对部分自动结构和自动数组初始化的看法吗?我在Visual Studio中执行上述代码没有问题,但我希望与gcc / g ++兼容,也可能与其他编译器兼容。谢谢
慕后森
aluckdog
慕村225694