struct Student { char grade; int score; const char *name; };
struct Student s1 = { 'A', 91, "Alan" };
缺點:順序必須與宣告一致,增減成員易出錯,可讀性差。
struct Student s2 = {
.name = "YunYun",
.grade = 'B',
.score = 92,
};
.addr = { .city = "Taipei", .zip = 100 }。struct Student s3 = {
grade: 'C',
score: 93,
name: "Wood",
};
僅 GCC/Clang 支援,不可移植,不建議新代碼使用。
struct Student class[2] = {
{ .grade = 'D', .score = 94 },
{ .grade = 'E', .score = 95, .name = "Xxx" },
};
內層大括號不可省略,每個元素獨立初始化。
-std=c99 或 -std=c11 確保支援。