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_NAMESTRUCTURE_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.

list
from outgoing([[MalDev - Coding Basics]])
sort file.ctime asc

Resources