#if和#endif是一組同時使用的,叫做條件編譯指令。#if與#define、#include等指令一樣是由預處理器這個強大的工具處理的,預處理器可以在編譯前處理c程式。
基本介紹
- 中文名:#if
- 釋義:一種條件編譯指令
- 出處:C語言
使用條件編譯指令,如果滿足#if後面的條件,就編譯#if和#endif之間的程式段,否則不編譯。
例如:
#define LEN_MAX 3
#define LenMax 6
#if LEN_MAX <LenMax
#undef LEN_MAX
#define LEN_MAX LenMax
#endif
定義了LEN_MAX 和LenMax,如果LEN_MAX <LenMax成立為真,則取消LEN_MAX的定義,重新定義LEN_MAX,也就是說LEN_MAX等於6。這時預處理器會保留中間程式(#if與#endif行會消失),讓編譯器編譯中間行。
如果LEN_MAX <LenMax不成立,預處理器會將刪除#if到#endif中的程式(包括#if與#endif行),則編譯器會看不到中間的程式。
這樣的處理不會在目標代碼中占用空間,減少程式運行時間。它可以用於程式調試使用。