文章主本文根据笔者个人工作/学习经验整理而成,如有错误请留言。
文章为付费内容,已加入原创保护,禁止私自转载。
文章发布于:《C语言编译报错&警告合集》
有两个原因。
原因1:
typedef struct {
int x;
int y;
} Point;
int main() {
Point points[3] = {0, 0, 0, 1, 1, 0};
return 0;
}
上面的代码中,我们试图使用一个包含3个Point类型元素的数组来初始化points数组。但是,我们使用的大括号中只包含了6个整数,而没有使用完整的大括号来表示每个元素的初始化值。这样的语法错误会导致编译器输出"missing braces around initializer"的警告信息。
正确的初始化语法应该是:
Point points[3] = {
{0, 0}, {0, 1}, {1, 0}};
这里,我们使用了完整的大括号来表示每个元素的初始化值,也就是每个Point类型的元素都是一个包含两个整数的初始化值列表。这样