【发布时间】:2026-02-20 11:50:02
【问题描述】:
我正在使用 RAD studio 10.2 附带的 clang 编译器(我认为是 c++ 11)。我今天错误地发现结构或数组的前 n 个成员可以使用通常的大括号进行分配,例如
int a[500]={1};
struct {int a,b,c;} st={2,3};
上面的编译和工作正常,但我从来没有遇到过这个或以前见过它,我在网上找不到它的提及(也许我使用错误的措辞类型进行搜索)。这个 c++ 记录了吗?
【问题讨论】:
-
我认为您对 {1} 所做的第一个分配不会将 1 分配给所有 500 个元素,而是仅将 1 分配给第一个元素。
-
如果您不希望发生这种情况,请查看编译器标志
-Wmissing-field-initializers或(如果您想严格一点)-Werror=missing-field-initializers。
标签: c++ initialization clang aggregate-initialization