Trang tài liệu
Khóa học C++ nền tảng
Chương 10. Các khái niệm về ngôn ngữ
Macro C++

Macro C++

Macro là các chỉ thị tiền xử lý trong C++ được bộ tiền xử lý sử dụng để thực hiện thay thế văn bản. Chúng được xác định bằng chỉ thị #define, theo sau là tên macro và giá trị được thay thế.

Macro có thể được sử dụng để xác định hằng số, tạo macro giống hàm hoặc thực hiện quá trình biên dịch có điều kiện.

Macro liên tục

Các macro không đổi được sử dụng để xác định các hằng số tượng trưng để sử dụng trong mã code. Chúng không sử dụng bất kỳ bộ nhớ nào và được thay thế bởi bộ tiền xử lý trước quá trình biên dịch.

Ví dụ:

#define PI 3.14159

Macro này định nghĩa một hằng số tượng trưng PI. Bạn có thể sử dụng nó trong mã code của mình như thể nó là một biến thông thường.

double circumference = 2 * PI * radius;

Hàm giống như Macro

Các macro giống như hàm tương tự như các hàm thông thường. Họ lấy một danh sách các đối số và thực hiện thay thế văn bản.

Ví dụ:

#define SQUARE(x) ((x) * (x))

Macro này định nghĩa một hàm giống macro SQUARE để tính bình phương của một số.

int square_of_five = SQUARE(5); // mở rộng thành ((5) * (5))

Biên dịch có điều kiện

Macro có thể được sử dụng để biên dịch có điều kiện bằng cách sử dụng các chỉ thị #ifdef, #ifndef, #if, #else, #elif và #endif.

Ví dụ:

#define DEBUG_MODE

#ifdef DEBUG_MODE
  // Mã code chỉ được biên dịch trong chế độ gỡ lỗi
#else
  // Mã code chỉ được biên dịch nếu DEBUG_MODE không được xác định
#endif

Ví dụ này minh họa cách bạn có thể sử dụng macro để kiểm soát các phần mã code đang được biên dịch, tùy thuộc vào việc có hay không có định nghĩa macro.