3. The OS must be fast
3.5.14 Preprocesor và Macro
Preprocessor trong C khụng phải là một phần của trỡnh biờn dịch, nhưng là một bước riờng biệt trong quỏ trỡnh biờn dịch. Núi một cỏch đơn giản, một bộ tiền xử lý C chỉ là một cụng cụ thay thế văn bản và nú chỉ thị trỡnh biờn dịch cần thực hiện trước khi biờn dịch.
Tất cả cỏc lệnh tiền xử lý bắt đầu bằng một biểu tượng dấu thăng (#). Nú phải là ký tự đầu tiờn và để dễ đọc, một chỉ thị tiền xử lý nờn bắt đầu trong cột đầu tiờn. Phần sau liệt kờ tất cả cỏc chỉ thị tiền xử lý quan trọng.
No Chỉ thị & Mụ tả
1 #define
Thay thế macro tiền xử lý.
2 #include
Chốn một header cụ thể từ một file khỏc.
3 #undef
Hủy định nghĩa macro tiền xử lý.
4 #ifdef
Trả về true nếu macro được định nghĩa.
5 #ifndef
Trả về true nếu macro khụng được định nghĩa.
6 #if
Kiểm tra nếu một điều kiện thời gian biờn dịch là true.
7 #else
211
8 #elif
#else và #if trong một cõu lệnh.
9 #endif
Kết thỳc tiền xử lý cú điều kiện.
10 #error
In thụng bỏo lỗi trờn stderr.
11 #pragma
Đưa ra cỏc lệnh đặc biệt cho trỡnh biờn dịch, sử dụng một phương thức được chuẩn húa.
Macro được định nghĩa trước
ANSI C định nghĩa một số macro. Mặc dự mỗi cỏi cú sẵn để sử dụng trong lập trỡnh, cỏc macro được xỏc định trước khụng nờn được sửa đổi trực tiếp.
No Macro & Mụ tả
1 __DATE__
Ngày hiện tại cú định dạng "MMM DD YYYY".
2 __TIME__
Thời gian hiện tại cú định dạng "HH:MM:SS".
3 __FILE__
Chứa tờn của file hiện tại cú kiểu chuỗi.
4 __LINE__
212
5 __STDC__
Được định nghĩa là 1 khi trỡnh biờn dịch tuõn thủ tiờu chuẩn ANSI.