Preprocesor và Macro

Một phần của tài liệu Bài giảng Xây dựng các hệ thống nhúng: Phần 2 (Trang 72 - 74)

3. The OS must be fast

3.5.14Preprocesor 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__ (adsbygoogle = window.adsbygoogle || []).push({});

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.

Một phần của tài liệu Bài giảng Xây dựng các hệ thống nhúng: Phần 2 (Trang 72 - 74)