Sử dụng từ khóa typedef
để khai báo alias cho cấu trúc. Ví dụ:
typedef struct _STRUCTURE_NAME {
// structure elements
} STRUCTURE_NAME, *PSTRUCTURE_NAME;
Cấu trúc trên có 3 tên:
_STRUCTURE_NAME
vàSTRUCTURE_NAME
là dùng cho kiểu cấu trúc.PSTRUCTURE_NAME
dùng cho con trỏ trỏ đến cấu trúc.
Việc khai báo sử dụng _STRUCTURE_NAME
hay STRUCTURE_NAME
là như nhau:
STRUCTURE_NAME struct1 = { 0 }; // The '{ 0 }' part, is used to initialize all the elements of struct1 to zero
// OR
_STRUCTURE_NAME struct2 = { 0 }; // The '{ 0 }' part, is used to initialize all the elements of struct2 to zero
Thay vì chỉ dùng toán tử .
để gán giá trị cho từng phần tử sau khi cấu trúc đã được tạo, ta cũng có thể tận dụng toán tử này ngay từ lúc khởi tạo cấu trúc:
typedef struct _STRUCTURE_NAME {
int ID;
int Age;
} STRUCTURE_NAME, *PSTRUCTURE_NAME;
STRUCTURE_NAME struct1 = { .ID = 1470, .Age = 34}; // initialize both the ID and the Age elements
Cú pháp này được gọi là designated initializer.
Ngoài ra, một cách khác để truy cập đến các phần tử của cấu trúc thông qua con trỏ là dereference con trỏ bằng toán tử *
rồi sử dụng toán tử .
. Ví dụ, cú pháp structpointer->ID
có ý nghĩa tương đương với (*structpointer).ID
.
Related
list
from outgoing([[MalDev - Coding Basics]])
sort file.ctime asc