關於 ifdef的用法

2021-09-29 10:27:32 字數 1190 閱讀 9694

1、 生成動態鏈結庫

#ifdef export_api

#define dll_api extern」c」 __declspec(dllexport)

#else

#define dll_api extern」c」 __declspec(dllimport)

#endif

2、 兩個系統的選擇

#ifdef _win32

#include 「thread_win32.h」

#else

#include 「threadbase_vx.h」

#endif

3、 避免重複編譯

#ifndef qydbfcae_businte***ce_h

#define qydbfcae_businte***ce_h

***#endif

4、 c語言編譯

#ifdef __cplusplus

extern 「c」

#endif

#if 常量表示式

//程式段1

#else

//程式段2

#endif

作用:如果常量表示式的內容為真(非0),則對程式1進行編譯;否則對程式2進行編譯。因此可以使程式在不同條件下,完成不同的功能。

#ifdef 識別符號 [識別符號唯一化]

//程式段1

#else

//程式段2

#endif

作用:當識別符號已經被定義過,則對程式1進行編譯;否則編譯程式2。

【ifdef與ifndef常常結合起來使用】

例如:#ifndef export_api

#define export_api

#endif

#ifdef export_api

#define dll_api __declspec(dllexport)

#else

#define dll_api __declspec(dllimport)

#endif

#ifndef 識別符號

//程式段1

#else

//程式段2

#endif

作用:當識別符號沒有被定義則編譯程式1,否則編譯程式2;

【條件指示符#ifdef檢查預編譯常量在前面是否已經被定義。

#ifndef的最主要目的使用是防止標頭檔案的重複包含和編譯。】

條件編譯 ifdef用法

這幾個巨集是為了進行條件編譯。一般情況下,源程式中所有的行都參加編譯。但是有時希望對其中一部分內容只在滿足一定條件才進行編譯,也就是對一部 分內容指定編譯的條件,這就是 條件編譯 有時,希望當滿足某條件時對一組語句進行編譯,而當條件不滿足時則編譯另一組語句。條件編譯命令最常見的形式為 ifdef 識...

關於 ifdef和 if的驗證

中經常出現 ifdef和 if,太久沒看c,有點疑惑。剛剛用c free驗證後,總結一下。四種情況 define test define test 0 0 define test 1 1 define test null null ifdef test 或者 ifdef test 0 或者 ifde...

ifdef與 endif的作用及用法

一般情況下,源程式中所有的行都參加編譯。但是有時希望對其中一部分內容只在滿足一定條件才進行編譯,也就是對一部分內容指定編譯的條件,這就是 條件 編譯 有時,希望當滿足某條件時對一組語句進行編譯,而當條件不滿足時則編譯另一組語句。條件編譯 命令最常見的形式為 ifdef 識別符號 程式段1 else ...