Tiền xử lý
Tiền xử lý là bước xử lý trước khi biên dịch mã nguồn. Tiền xử lý sẽ xử lý file mã nguồn và tạo ra file sau khi đã xử lý. Tất cả các tiền xử lý đều bắt nguồn bằng ký tự #
.
Sau đây là mô tả các tiền xử lý quan trọng.
Tiền xử lý | Mô tả |
---|---|
#include | Thêm một file vào mã nguồn |
#define | Định nghĩa một macro |
#undef | Hủy định nghĩa của macro |
#ifdef | Nếu một macro đã định nghĩa |
#ifndef | Nếu một macro chưa định nghĩa |
#if | Điều kiện if |
#else | Nếu điều kiện if là false thì chạy else |
#elif | Viết tắt của else if |
#endif | Kết thúc của #if |
#error | In ra lỗi |
Macro giống một hằng nhưng được thay thế thành giá trị ngay lúc biên dịch.
Header
Header là các file đuôi .h
chứa các khai báo của C để các file có thể dùng lại. Để include các file từ thư mục hệ thống chúng ta sử dụng:
#include <file>
Để include các file tự tạo trong thư mục của chúng ta thì sử dụng:
#include "file"
Xử lý
Khi dùng tiền xử lý #include
thì nội dung của đoạn #include
được thay thế bằng nội dung của file include.
Ví dụ nội dung file header.h
:
|
|
Nội dung file main.c
:
|
|
Khi xử lý tiền biên dịch thì nội dung file main.c
sẽ là
|
|
Include một lần duy nhất
Trong chương trình, khi mà chúng ta muốn include nhiều lần một file header thì có thể bị lỗi. Để include duy nhất một file ta hãy xử dụng tiền xử lý #ifndef
, #define
và #endif
.
Ví dụ file header.h
như trên chúng ta hãy viết lại như sau:
|
|
Khai báo header và viết nội dung thực thi phần header
Ví dụ bạn muốn khai báo hàm trong header và viết phần thực thi trong file .c, hãy làm như sau:
File add.h
|
|
File add.c
|
|
File main.c
|
|
Biên dịch chương trình bằng gcc
trên linux
gcc main.c add.c -o app