Computer >> Máy Tính >  >> Lập trình >> C ++

Bộ tiền xử lý C ++


Bộ tiền xử lý là các chỉ thị, cung cấp hướng dẫn cho trình biên dịch để xử lý trước thông tin trước khi quá trình biên dịch thực sự bắt đầu.

pTất cả các chỉ thị tiền xử lý bắt đầu bằng # và chỉ các ký tự khoảng trắng mới có thể xuất hiện trước một chỉ thị tiền xử lý trên một dòng. Các chỉ thị tiền xử lý không phải là câu lệnh C ++, vì vậy chúng không kết thúc bằng dấu chấm phẩy (;).

Bạn đã thấy lệnh #include trong tất cả các ví dụ. Macro này được sử dụng để đưa tệp tiêu đề vào tệp nguồn.

Có một số lệnh tiền xử lý được C ++ hỗ trợ như #include, #define, #if, #else, #line, v.v. Hãy để chúng tôi xem các lệnh quan trọng -

Bộ tiền xử lý #define

Chỉ thị tiền xử lý #define tạo các hằng số tượng trưng. Hằng số tượng trưng được gọi là macro và hình thức chung của chỉ thị là -

#define macro-name replacement-text

Mã mẫu

#include <iostream>
using namespace std;

#define PI 3.14159

int main () {
   cout << "Value of PI :" << PI << endl;
   return 0;
}

Đầu ra

Value of PI :3.14159

Tổng hợp có điều kiện

Có một số chỉ thị, có thể được sử dụng để biên dịch các phần chọn lọc của mã nguồn chương trình của bạn. Quá trình này được gọi là quá trình biên dịch có điều kiện.

Cấu trúc tiền xử lý có điều kiện giống cấu trúc lựa chọn ‘if’. Xem xét mã tiền xử lý sau -

#ifndef NULL
   #define NULL 0
#endif

Bạn có thể biên dịch một chương trình cho mục đích gỡ lỗi. Bạn cũng có thể bật hoặc tắt gỡ lỗi bằng một macro như sau -

#ifdef DEBUG
cerr <<"Variable x = " << x << endl;
#endif

Điều này làm cho câu lệnh chứng nhận được biên dịch trong chương trình nếu hằng số tượng trưng DEBUG đã được xác định trước chỉ thị #ifdef DEBUG. Bạn có thể sử dụng câu lệnh #if 0 để nhận xét một phần của chương trình như sau -

#if 0
   code prevented from compiling
#endif

Mã mẫu

#include <iostream>
using namespace std;
#define DEBUG

#define MIN(a,b) (((a)<(b)) ? a : b)

int main () {
   int i, j;
   i = 100;
   j = 30;

   #ifdef DEBUG
      cerr <<"Trace: Inside main function" << endl;
   #endif

   #if 0
      /* This is commented part */
      cout << MKSTR(HELLO C++) << endl;
   #endif

   cout <<"The minimum is " << MIN(i, j) << endl;

   #ifdef DEBUG
      cerr <<"Trace: Coming out of main function" << endl;
   #endif

   return 0;
}

Đầu ra

Trace: Inside main function
The minimum is 30
Trace: Coming out of main function