C C 預編譯命令

2021-05-18 01:26:10 字數 1080 閱讀 9904

(一)基本知識   

預處理器指示符以「#」號開頭標識,處理這些指示符的程式叫做預處理器。

#include指示符讀入指定檔案的內容,它有兩種格式:

#include

#include "my_file.h"

如果檔名用<>括起來,表明這個檔案是乙個工程或標準標頭檔案,查詢過程會先檢查預定義的目錄,我

們可以通過設定環境變數或命令列來修改這些目錄。如果檔名用「」引起來,則表明該檔案是使用者提供的

標頭檔案,查詢該檔案時將從當前檔案所在目錄開始。

由於標頭檔案的巢狀關係,乙個標頭檔案可能會被再次包含,條件指示符可防止這種標頭檔案的重複處理,例

如:#ifndef bookstore_h

#define bookstore_h

//bookstore.h的內容

#endif

#ifndef指明,如果某個巨集未被定義,要怎麼處理

#ifdef指明,如果某個巨集已被定義,要怎麼處理。

比如:int main()

enum idd;

typedef struct msgmsg;

msg _msg = ;

相當於:

msg _msg = ,

};3、記錄檔名

#define _get_file_name(f)   #f

#define get_file_name(f)    _get_file_name(f)

static char file_name = get_file_name(__file__);

4、得到乙個數值型別所對應的字串緩衝大小

#define _type_buf_size(type) sizeof #type

#define type_buf_size(type)   _type_buf_size(type)

char buf[type_buf_size(int_max)];

--> char buf[_type_buf_size(0x7fffffff)];

--> char buf[sizeof "0x7fffffff"];

這裡相當於:

char buf[11];

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

1.常見的預編譯指令和條件編譯項有如下這些 define undef ifdef ifndef if elif else endif 1 define 定義乙個預處理巨集 2 undef 取消巨集的定義 3 if 編譯預處理中的條件命令,相當於c語法中的if語句 4 ifdef 判斷某個巨集是否被定...

預編譯命令總結

今天覆習了下條件編譯命令,總結如下。常用的有三種預編譯命令 巨集定義,檔案包含和條件編譯。1 巨集定義即是字串替換。巨集分為無參巨集和含參巨集。定義巨集的位置可以在函式外部也可以在函式內部 vc 2008 測試通過 巨集的作用域是從定義處到取消定義命令 undef 巨集名 之間的部分,若無顯式的 u...

預編譯處理命令

if endif是c 種的條件編譯預處理命令 有兩種格式 1 ifdef 標示符 程式段1 else 程式段2 endif 表示 如果標示符已經被 define命令定義過,則編譯程式段1,否則編譯程式段2 2 if 表示式 程式段1 else 程式段2 endif 表示 如果表示式為真,則編譯程式段...