gpt4 book ai didi

c - -Wmissing-field-initializers 何时触发警告?

转载 作者:行者123 更新时间:2023-12-04 08:13:01 25 4
gpt4 key购买 nike

我知道顾名思义,它会在缺少字段初始值设定项时触发。但它没有触发以下代码的任何警告。

#include <stdio.h>

struct test {
int a, b, c;
};

void func(struct test test) {
printf("%d, %d, %d\n", test.a, test.b, test.c);
}

int main() {
func((struct test) {12, .a = 1, 12, .a = 13, .b = 13});
return 0;
}
当我运行 gcc test.c -Wmissing-field-initializers 时,它编译时没有警告.它打印出 13, 13, 0 .这是 -Wmissing-field-initializers 的默认行为吗? ?

最佳答案

来自 documentation :
此选项 不警告指定的初始值设定项
尝试

#include <stdio.h>

struct test {
int a, b, c;
};

void func(struct test test) {
printf("%d, %d, %d\n", test.a, test.b, test.c);
}

int main() {
func((struct test) {1, 2}); // Now you get a warning
return 0;
}

关于c - -Wmissing-field-initializers 何时触发警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65857980/

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