在C語言中,
條件編譯指令將決定哪些代碼被編譯,哪些是不被編譯的。可以根據表達式的值或者某個特定的宏是否被定義來確定編譯條件。
下面是部分預處理指令:
指令用途
# 空指令,無任何效果
#include 包含一個源代碼文件
#define 定義宏
#undef 取消已定義的宏
#if 如果給定條件為真,則編譯下面代碼
#ifdef 如果宏已經定義,則編譯下面代碼
#ifndef 如果宏沒有定義,則編譯下面代碼
#elif 如果前面的#if給定條件不為真,當前條件為真,則編譯下面代碼
#endif 結束一個#if……#else條件編譯塊
#error 停止編譯並顯示錯誤信息
#if 指令檢測跟在後面的常量表達式,如果表達式為真,則編譯後面的代碼,直到出現#else、#elif或#endif為止;否則就不編譯。
#endif用於終止#if預處理指令。
#include<stdio.h> DEBUG 0 DEBUG
如果去掉#define語句,效果是一樣的。
#include<stdio.h> DEBUG
#else指令用於某個#if指令之後,當前面的#if指令的條件不為真時,就編譯#else後面的代碼。#endif指令將終止上面的條件塊。
#include<stdio.h> DEBUG
#elif預處理指令綜合了#else和#if指令的作用。
#include<stdio.h> TWO defined TWO