Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Khởi tạo chỉ định (Designated Initializers) trong C

Từ C99: khởi tạo mảng/struct không theo thứ tự, dùng chỉ mục hoặc tên thành viên. GNU C++ không hỗ trợ.

Mảng

int a[6] = {[3]=20, [5]=40};    // {0,0,0,20,0,40}
int a[6] = {[2...4]=10};        // {0,0,10,10,10,0}

Ví dụ phức tạp

int A[] = {10,20,30, [3...9]=100, [10]=65, 15, [80]=50, [42]=400};
// Size tự động = 81 (max index 80 + 1)

Struct

struct S { int x; float y; char z; };
struct S s1 = {.y=2.324, .z='f', .x=78};
struct S s2 = {.z='r'}; // x,y = 0