Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Bộ tiền xử lý C (C Preprocessors)

Giới thiệu

C Preprocessor là bộ tiền xử lý macro cho C. Xử lý trước khi biên dịch: include file, macro, biên dịch điều kiện, điều khiển dòng. Tất cả bắt đầu bằng #.

Danh sách tiền xử lý phổ biến

#Tiền xử lýMô tả
1#includeChèn file header
2#defineĐịnh nghĩa macro/hằng số
3#undefHủy định nghĩa macro
4#ifKiểm tra điều kiện compile-time (true)
5#elseNhánh thay thế của #if
6#ifndefKiểm tra macro CHƯA định nghĩa
7#elifKết hợp #else + #if
8#errorBáo lỗi compile tùy chỉnh
9#endifKết thúc khối điều kiện
10#pragmaChỉ thị cho trình biên dịch

Ví dụ thực tế

// Header guard
#ifndef MY_HEADER_H
#define MY_HEADER_H

// Macro hằng số
#define PI 3.14159
#define MAX(a,b) ((a)>(b)?(a):(b))

// Biên dịch điều kiện
#if defined(DEBUG)
    #define LOG(x) printf(x)
#else
    #define LOG(x)
#endif

#endif // MY_HEADER_H

Các macro hữu ích

  • __FILE__: Tên file hiện tại
  • __LINE__: Số dòng hiện tại
  • __DATE__: Ngày biên dịch
  • __TIME__: Giờ biên dịch
  • __func__: Tên hàm hiện tại (C99)

Lưu ý

  • Macro không kiểm tra kiểu → cẩn thận với phép toán (bao ngoặc)
  • #pragma once thay thế header guard (hỗ trợ rộng rãi)
  • Tránh lạm dụng macro phức tạp → dùng inline function (C99)