Lúc đầu, tôi đã cố gắng để khởi tạo một cấu trúc như thế này:Tại sao tôi cần nhiều dấu ngoặc nhọn hơn khi khởi tạo cấu trúc này?
struct {
char age[2]; // Hold two 1-Byte ages
} studage[] = {
{23, 56},
{44, 26}
};
Nhưng điều đó mang lại cho tôi một trình biên dịch cảnh báo về việc thiếu niềng răng, vì vậy tôi sử dụng nhiều hơn niềng răng theo đề nghị của trình biên dịch và kết thúc với điều này:
struct {
char age[2]; // Hold two 1-Byte ages
} studage[] = {
{{23, 56}},
{{44, 26}}
};
Không cảnh báo. Tại sao tôi cần thêm niềng răng?
Không phải là một bên ngoài cho cấu trúc và nội một cho mảng char đó là bên trong nó? – Wookie88
Đó là cảnh báo chứ không phải lỗi. Trình biên dịch không phải là "đòi hỏi" bất cứ điều gì. –
trùng lặp [Ý nghĩa của cặp dấu ngoặc kép khởi tạo C-struct là gì?] (Http://stackoverflow.com/questions/6251160/what-is-the-meaning-of-double-curly-braces-initializing- ac-struct)? – nicael