Ngôn ngữ lập trình C

Chỉ thị tiền xử lý

  1. Khái niệm về chỉ thị tiền xử lý

    Chỉ thị tiền xử lý (preprocessor directives) là các lệnh đặc biệt bắt đầu bằng ký tự #, được xử lý bởi bộ tiền xử lý (preprocessor) trước giai đoạn biên dịch chương trình.

    Giai đoạn tiền xử lý bao gồm các công việc như chèn nội dung của các tập tin tiêu đề, thay thế các macro đã được định nghĩa, xử lý biên dịch có điều kiện và thực hiện các chỉ thị điều khiển biên dịch khác.

    Bảng dưới đây liệt kê danh sách các chỉ thị tiền xử lý của ngôn ngữ C.

    # Chỉ thị Ý nghĩa
    1 #include Chèn nội dung của một tập tin (thường là header file) vào chương trình
    2 #define Định nghĩa macro
    3 #undef Hủy bỏ một macro đã được định nghĩa trước đó
    4 #if Kiểm tra giá trị của một biểu thức hằng số nguyên
    5 #elif Kết hợp với #if để kiểm tra các điều kiện khác
    6 #else Kết hợp với #if, #elif để mô tả trường hợp còn lại khi các điều kiện trước đó không thỏa mãn
    7 #endif Kết thúc khối chỉ thị biên dịch có điều kiện #if
    8 #ifdef Kiểm tra một macro đã được định nghĩa hay chưa
    9 #ifndef Kiểm tra một macro chưa được định nghĩa
    10 #pragma Cung cấp các chỉ dẫn bổ sung cho trình biên dịch, nội dung và ý nghĩa phụ thuộc vào từng compiler.
    11 #error Chỉ định bộ tiền xử lý phát sinh một lỗi và chấm dứt quá trình tiền xử lý
    12 #line Chỉ định lại tên tập tin và số dòng mà trình biên dịch sử dụng để định vị mã nguồn khi biên dịch và gỡ lỗi.
  2. Chỉ thị #include

    #include là chỉ thị dùng để chèn nội dung của một tập tin (thường là tập tin tiêu đề – header file) vào vị trí xuất hiện của chỉ thị đó trong chương trình.

    1. Cú pháp của chỉ thị #include

      
          #include <file_name>
          #include "file_name"
          

      Khi tên tập tin được đặt trong dấu nháy kép (""), bộ tiền xử lý sẽ ưu tiên tìm tập tin trong thư mục hiện tại hoặc thư mục dự án (tùy theo cấu hình). Nếu không tìm thấy, nó sẽ tiếp tục tìm trong các thư mục chứa thư viện chuẩn.

    2. Ví dụ minh họa chỉ thị #include

      Trong bài học Soạn thảo, biên dịch và thực thi chương trình C, các hàm printf() và getchar() được khai báo trong tập tin stdio.h thuộc thư viện chuẩn, vì vậy chương trình cần có chỉ thị:

      
          #include <stdio.h>
          

      Khi chương trình sử dụng thêm các hàm khác, ví dụ như hàm quản lý bộ nhớ, các hàm toán học, các hàm xử lý chuỗi,... của thư viện chuẩn hãy chèn các tập tin tiêu đề tương ứng.

      
          #include <stdio.h>
          #include <stdlib.h>
          #include <math.h>
          #include <string.h>
          
  3. Kết luận

    Mặc dù số lượng chỉ thị tiền xử lý trong C không nhiều, nhưng việc sử dụng chúng hiệu quả đòi hỏi lập trình viên phải có kiến thức tổng quát và khả năng vận dụng linh hoạt.

    Trong giai đoạn này, chúng ta chỉ tìm hiểu về chỉ thị #include ở mức cơ bản, các chỉ thị còn lại sẽ được thảo luận chi tiết ở các bài học sau.