gpt4 book ai didi

c - 确保结构中的所有元素都已初始化

转载 作者:太空狗 更新时间:2023-10-29 15:00:59 24 4
gpt4 key购买 nike

我是一个 C 源代码,我想确保我的结构的所有元素都被很好地初始化。使用警告 Wmissing-field-initializers 会很容易。但我也希望能够使用指定的启动器来初始化我的元素。

例如:

struct s {
int a;
int b;
};

struct s s1 = { .a = 1, .b = 2 };
struct s s2 = { .a = 1 };
struct s s3 = { 1, 2 };
struct s s4 = { 1 };

让我们试着编译一下:

$ gcc -Wmissing-field-initializers -c struct_init.c 
struct_init.c:9:8: warning: missing initializer
struct_init.c:9:8: warning: (near initialization for ‘s4.b’)

我也希望 s2 初始化的编译失败。我更喜欢指定启动,因为它有助于源代码阅读。

最佳答案

当您使用指定初始值设定项时,缺失的成员将被初始化为 0。即使对象具有自动存储持续时间也是如此。据我所知,没有 gcc 选项可以在您使用指定初始值设定项时警告显式初始化的成员。

关于c - 确保结构中的所有元素都已初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14122983/

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