用宏變量控制代碼的條件編譯

在源文件中,用宏變量控制代碼的條件編譯,有如下四個(gè)編譯控制語(yǔ)句:

#if

#if defined

#ifndef

#ifdef

四個(gè)常見(jiàn)編譯控制的區(qū)別,聯(lián)系,及用法:

#ifdef 與 #if defined() 是等價(jià)的。 適用于判斷單個(gè)宏是否定義。

#if defined() 可以構(gòu)成復(fù)雜的邏輯判斷。

例如

#if defined(TEST1) || defined(TEST2)

xxxxxx

#endif

#if defined(AAA) && VERSION > 3

xxxxx

#endif

#if 后面跟條件表達(dá)式, 為真,執(zhí)行編譯,為假,不編譯。

#if defined() 就是#if 的一種用法。

#ifndef ?和 #if !defined() 等價(jià),用來(lái)判斷單個(gè)宏是否未定義

例如:

#if !defined YA_BUILD_FOR_DEVELOP && !defined YA_BUILD_FOR_TEST && !defined YA_BUILD_FOR_RELEASE && !defined YA_BUILD_FOR_PRERELEASE

#define YA_BUILD_FOR_DEVELOP

//#define YA_BUILD_FOR_TEST

//#define YA_BUILD_FOR_PRERELEASE

//#define YA_BUILD_FOR_HOTFIX

//#define YA_BUILD_FOR_RELEASE//該環(huán)境的優(yōu)先級(jí)最高

#endif

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • C中的預(yù)編譯宏定義 2009-02-10 作者: infobillows 來(lái)源:網(wǎng)絡(luò) 在將一個(gè)C源程序轉(zhuǎn)換為可執(zhí)行...
    白水灬煮一切閱讀 1,646評(píng)論 0 5
  • 在我們的工程中,很多時(shí)候只希望在滿足一定條件的時(shí)候才進(jìn)行編譯,這是就需要用到條件編譯。 #if #elif #el...
    JerryLMJ閱讀 10,241評(píng)論 0 14
  • 目錄 一.預(yù)處理的工作方式... 3 1.1.預(yù)處理的功能... 3 1.2預(yù)處理的工作方式... 3 二.預(yù)處理...
    朱森閱讀 1,432評(píng)論 0 2
  • 有些程序在調(diào)試、兼容性、平臺(tái)移植等情況下可能想要通過(guò)簡(jiǎn)單地設(shè)置一些參數(shù)就生成一個(gè)不同的軟件,這當(dāng)然可以通過(guò)變量設(shè)置...
    hehtao閱讀 1,187評(píng)論 0 11
  • 從快餐店里出來(lái),已經(jīng)是六點(diǎn)多,兩周前找的一個(gè)兼職,雖然有點(diǎn)累。但還算可以,老板人挺好的,對(duì)自己也挺照顧。他是本市人...
    愛(ài)吃肉的和尚閱讀 312評(píng)論 0 0