C C 預編譯指令和條件編譯

2022-08-28 09:18:08 字數 1168 閱讀 1610

1. 常見的預編譯指令和條件編譯項有如下這些: 

#define、#undef、#ifdef、#ifndef、#if、#elif、#else、#endif

1

#define 定義乙個預處理巨集

2#undef 取消巨集的定義

3#if 編譯預處理中的條件命令,相當於c語法中的if語句

4#ifdef 判斷某個巨集是否被定義,若已定義,執行隨後的語句

5#ifndef 與#ifdef相反,判斷某個巨集是否未被定義

6#elif 若#if, #ifdef, #ifndef等條件不滿足,則執行

7#else 與#if, #ifdef, #ifndef對應, 若這些條件不滿足,則執行

8#endif #if, #ifdef, #ifndef這些條件命令的結束標誌.

9 defined  與#if, #elif配合使用,判斷某個巨集是否被定義

2. #define介紹

#define macro_name[args] [tokens]

定義乙個巨集,args(引數)和tokens(標記)都是可選的,比如,

#define pi 3.14

#define debug

沒有標記的巨集,預設值是 1,

之後出現的macro_name將被替代為所定義的標記

巨集定義,按照是否帶引數通常分為物件巨集、函式巨集兩種。

物件巨集: 不帶引數的巨集被稱為"物件巨集(objectlike macro)"。物件巨集多用於定義常量、通用標識。例如:

//

常量定義

#define max_length 100

//通用標識,日誌輸出巨集

#define slog printf

//預編譯巨集

#define _debug

函式巨集:帶引數的巨集。例如

//

最小值函式

#define min(a,b) ((a)>(b)? (a):(b))

//安全釋放記憶體函式

#define safe_delete(p) }

C C 中的預編譯指令

程式語言的預處理的概念 在編譯之前進行的處理,讀入源 之後,會檢查 裡包含的預處理指令,完成諸如包含其他原始檔 定義巨集 根據條件決定編譯時是否包含某些 的工作。c c 語言的預處理主要有三個方面的內容 1.巨集定義 2.檔案包含 3.條件編譯 預處理命令以符號 開頭。下面介紹一些c c 中預編譯的...

C C 中的預編譯指令

程式的編譯過程可以分為預處理 編譯 彙編三部分,其中預處理是首先執行的過程,預處理過程掃瞄程式源 對其進行初步的轉換,產生新的源 提供給編譯器。預處理過程讀入源 之後,會檢查 裡包含的預處理指令,完成諸如包含其他原始檔 定義巨集 根據條件決定編譯時是否包含某些 的工作。下面介紹一些c c 中預編譯的...

c c 中的預編譯指令總結

預處理指令提供按條件跳過原始檔中的節 報告錯誤和警告條件,以及描繪源 的不同區域的能力。使用術語 預處理指令 只是為了與 c 和 c 程式語言保持一致。在 c 中沒有單獨的預處理步驟 預處理指令按詞法分析階段的一部分處理。預處理器的主要作用就是把通過預處理的內建功能對乙個資源進行等價替換,最常見的預...