c語言之預處理指令

2021-10-04 03:38:57 字數 805 閱讀 7660

c語言的預處理指令 有 巨集定義 ,檔案包含 ,條件編譯

巨集定義分為兩類

1 不帶引數的巨集定義

2 帶引數的巨集定義

巨集定義的格式

一般形式 #define 巨集名 字串

作用:在編譯預處理的時候,將巨集名替換成右邊的字串

注意:巨集名一般大寫字母

巨集名在編譯預處理的時候不做編譯檢查,只做巨集名字串的簡單替換,只有在編譯的時候才會對巨集名展開的字串做編譯檢查

巨集的作用域是從定義位置到檔案結束,如果想要終止巨集的作用域,可以使用 #undef巨集指令

帶引數的巨集在展開的時候,只做簡單的字元和引數替換,不做任何計算操作,所以一般用小括號包住字串

巨集和函式的區別

1 巨集不涉及儲存空間的分配,引數型別匹配,引數傳遞,返回值問題

函式在在程式執行時執行,巨集在編譯階段執行,所以帶引數的巨集比函式更有執行效率

條件編譯 只有滿足某一條件才進行編譯

格式 #if #elseif  #else #endif 這種格式進行條件編譯判斷

#include <> 中檔案包含的引入形式,c語言庫函式所在的目錄下尋找檔案

#include 「」 現在當前源程式的目錄下面查詢,若找不到,再到作業系統的路徑中查詢,最後才到c語言庫函式所在的標頭檔案中查詢

c語言指令允許巢狀包含,但是不需要遞迴包含  a.h包含b.h b.h包含c.h 但是a.h包含b.h b.h包含a.h這種是錯誤的

#include可能多次包含同乙個檔案,降低編譯效率,為了防止多次包含同乙個檔案 在標頭檔案中引入#ifndef __one__h__ #define __one__h_

C語言之預處理指令

在通常的概念中,預處理器是編譯器的 一部分,其實還不到編譯階段,只是單純的原始檔翻譯。展開操作,還不到真正編譯的語法分析,語義分析等階段。需要完全明確的是都在預處理進行原始檔文字處理階段,還不到編譯階段。c語言中的預處理指令如下 1 開頭 2 define,undef,include,if ifde...

C語言之預處理

預處理指令 在 編譯 0和1 之前執行的指令叫預處理指令。所有的預處理指令都是以 開頭。預處理的位置是隨便寫的 預處理指令的作用域 從編寫指令的那一行開始一直到檔案結尾 undef 巨集名 從這行 開始,巨集失效 巨集名一般用大寫 或者在巨集名前加 k 代表常量 變數名一般用小寫 一 巨集定義 格式...

C語言之預處理

預處理是c語言 也包括oc 的一部分,它們是一些特殊的命令.在編譯器對c程式 或者 oc程式 進行編譯之前,編譯器會對這些預處理命令進行處理,然後將這些處理的結構與源程式一起進行編譯.預處理命令有如下特徵.1 預處理命令必須以 號開頭 2 預處理通常位於程式的開頭部分 下面一起來看一下幾種使用情況 ...