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

Biên dịch có điều kiện (conditional compilation) trong ngôn ngữ C là gì?

Trong ngôn ngữ lập trình C, một số chỉ thị (directives) kiểm soát việc biên dịch chọn lọc các phần của mã chương trình. Chúng bao gồm:

  • #if
  • #else
  • #elif
  • #endif

Dạng chung của #if:

#if bieu_thuc_hang_so chuong_trinh_con #endif

#else hoạt động rất giống từ khóa else của C.

#elif nghĩa là "else if" và thiết lập chuỗi biên dịch if else-if.

Trong số những điều khác, #if cung cấp phương pháp thay thế để "comment out" mã.

Ví dụ:

#if 0 printf("#d", total); #endif

Ở đây, trình biên dịch sẽ bỏ qua printf("#d", total);.

#ifdef và #ifndef

#ifdef nghĩa là "if defined" (nếu đã định nghĩa), và kết thúc bằng #endif.

#ifndef nghĩa là "if not defined" (nếu chưa định nghĩa).

#undef

#undef xóa một định nghĩa đã được định nghĩa trước đó.

#line

#line thay đổi nội dung của __LINE__ (chứa số dòng của mã đang biên dịch) và __FILE__ (chuỗi chứa tên file nguồn đang biên译). Cả hai đều là định danh được định nghĩa sẵn trong trình biên dịch.

#pragma

Chỉ thị #pragma là chỉ thị tùy thuộc triển khai (implementation-defined) cho phép đưa ra các chỉ thị khác nhau cho trình biên dịch.

Ví dụ

Chương trình C minh họa #ifdef, #ifndef, #else và #endif:

#include  #define a 10 void main(){ #ifdef a printf("\n Hello I am here.."); #endif #ifndef a printf("\n Not defined "); #else printf("\n R u There "); #endif }

Kết quả

Khi chạy chương trình trên, kết quả:

Hello I am here.. R u There