1. 程式人生 > >C/C++語言條件編譯

C/C++語言條件編譯

在一般情況下,C語言中的原始碼都會參加到程式編譯中去,但是如果我們希望在某一些時候的情況下不希望所有程式碼進行編譯,或者說只編譯我想要的一部分程式碼。那麼,條件編譯在這裡就能幫到你了。

下面,我給大家展示集中關於條件編譯的形式

第一種型別:

            #ifdef 識別符號
                FIRST CODE
            #else
                SECOND CODE
            #endif

識別符號是在程式前面所定義的一個巨集,意思是如果你在這個編譯條件語句前面有定義到一個識別符號,則執行FIRST CODE,否則執行SECOND CODE。

第二種型別:

            #ifndef 識別符號
                FIRST CODE
            #else
                SECOND CODE
            #endif
第二種的不同在於第一個#ifdef變成了#ifndef,效果剛好和上面的第一種相反,ifndef翻譯過來是if no define,所以如果前面中沒有定義有標
識符,則執行第一個程式碼塊,否則執行第二個程式碼塊。

第三種類型:

            #if 表示式
                FIRST CODE
            #else
                SECOND CODE
            #endif
如果if後面的表示式為真,則執行第一段程式碼塊,否則執行第二段程式碼塊

上面中的#else在實際使用中可以根據情況去除,同if的條件語句同理

相關推薦

c語言 條件編譯

1.#if #elif #else #endif #if 條件1 {程式碼段} #elif 條件2 {程式碼段} … #else {程式碼段n+1} #endif 2.條件編譯的另一種方法是用

C語言-條件編譯使用分析

world! 當前 turn 技術分享 col mat cor == delet 1、基本概念   條件編譯的行為類似於C語言中的if…else…   條件編譯是預編譯指示命令,用於控制是否編譯某段代碼 2、實例分析 條件編譯初探 22-1.c 1 #incl

C語言條件編譯(#if,#ifdef,#ifndef,#endif,#else,#elif)

1、條件編譯介紹 條件編譯(conditional compiling)命令指定前處理器依據特定的條件來判斷保留或刪除某段原始碼。例如,可以使用條件編譯讓原始碼適用於不同的目標系統,而不需要管理該原始碼的各種不同版本。 條件編譯區域以 #if、#ifdef 或 #ifndef 等命令作為開頭,以

C/C++語言條件編譯

在一般情況下,C語言中的原始碼都會參加到程式編譯中去,但是如果我們希望在某一些時候的情況下不希望所有程式碼進行編譯,或者說只編譯我想要的一部分程式碼。那麼,條件編譯在這裡就能幫到你了。 下面,我給大家

第 16 章 C 預處理器和 C 庫(條件編譯

struct FN getc con ade 定義 輸入 lap pla 1 /*-------------------------------------- 2 names_st.h -- names_st 結構的頭文件 3 --------------

(轉)C語言條件編譯#if, #elif, #else, #endif、#ifdef, #ifndef

n+1 ifdef int pan 不能 ica 推薦 代碼 表達式 有些程序在調試、兼容性、平臺移植等情況下可能想要通過簡單地設置一些參數就生成一個不同的軟件,這當然可以通過變量設置,把所有可能用到的代碼都寫進去,在初始化時配置,但在不同的情況下可能只用到一部分代碼,就

C語言入門(廿二)之預處理指令、巨集、條件編譯、檔案包含、typedef、const

預處理指令 什麼是預處理指令: 在我們的檔案翻譯成0和1之前做的操作我們稱之為預處理指令。一般情況預處理指令都是以#號開頭的。 巨集定義的格式 不帶引數的巨集定義: #define 巨集名 值 巨集定義的作用:      

C語言的預處理之"條件編譯"

C語言的預處理主要有三個方面的內容: 巨集定義 檔案包含 條件編譯     預處理命令以符號"#"開頭。     採用條件編譯,可以減少被編譯的語句,從而減少目標的長度。當條件編譯段比較多時,目標程式長度可以大大減少。 條件編譯主要包括: #if         

C語言__預處理(巨集定義、檔案包含、條件編譯

C語言__預處理(巨集定義、檔案包含、條件編譯) 預處理簡單理解     1.C語言在對源程式進行編譯之前,會先對一些特殊的預處理指令作解釋(比如之前使用的#include檔案包含指令),產生一個新的源程式(這個過程稱為編譯預處理),之後再進行通常的編譯

c語言編譯預處理和條件編譯執行過程的理解

  在C語言的程式中可包括各種以符號#開頭的編譯指令,這些指令稱為預處理命令。預處理命令屬於C語言編譯器,而不是C語言的組成部分。通過預處理命令可擴充套件C語言程式設計的環境。 一.預處理的工作方式 1.1.預處理的功能   在整合開發環境中,編譯,連結是同時完成的。其實,C語言編譯器在對原始碼編譯之前

C語言詳解(6)巨集定義和條件編譯

巨集定義和條件編譯 一、概述 巨集定義是C語言的預處理功能。巨集定義就是簡單的替換,不作為計算,不也作為表示式。在C語言中作為預處理指令包括:巨集定義、檔案包含、條件編譯。 條件編譯其實就是將if…else…的設計思想引入到預處理功能中,給編譯器使用的。條件編譯時通過

什麼是C語言中的條件編譯

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

c語言學習--巨集定義、條件編譯

1. 防止一個頭檔案被重複包含  #ifndef COMDEF_H  #define COMDEF_H  //標頭檔案內容  #endif  2. 重新定義一些型別,防止由於各種平臺和編譯器的不同,而產生的型別位元組數差異,方便移

轉載至C語言中文網-跨平臺條件編譯

假如現在要開發一個C語言程式,讓它輸出紅色的文字,並且要求跨平臺,在 Windows 和 Linux 下都能執行,怎麼辦呢?這個程式的難點在於,不同平臺下控制文字顏色的程式碼不一樣,我們必須要能夠識別出不同的平臺。Windows 有專有的巨集_WIN32,Linux 有專

C語言中的條件編譯編譯預處理

在C 語言中,並沒有任何內在的機制來完成如下一些功能:在編譯時包含其他原始檔、定義巨集、根據條件決定編譯時是否包含某些程式碼。要完成這些工作,就需要使用預處理程式。儘管在目前絕大多數編譯器都包含了預處理程式,但通常認為它們是獨立於編譯器的。預處理過程讀入原始碼,檢查包含預處

C語言/原子/編譯,你真的明白了嗎?

clas done ati pre 內存 程序 導致 裏的 creat   說到原子,類似於以下的代碼可能人人都可以看出貓膩。 #include <stdio.h> #include <pthread.h> int cnt = 0;

C/C++預處理指令#define,條件編譯#ifdefine

明顯 int 生效 cpp 這樣的 ffffff 給定 ron fde 本文主要記錄了C/C++預處理指令,常見的預處理指令如下: #空指令,無任何效果 #include包含一個源代碼文件 #define定義宏 #undef取消已定義的宏 #if如果給定條件為真,則編譯下面

C條件編譯(二十)

C語言 條件編譯 我們在平時的項目中,難免會遇到這樣的問題:一個產品需要好幾個版本(如低、中、高版本)。那麽問題來了,我們需要對這一個產品進行幾個版本的人馬的同時開發嗎?當然是不用啦,企業是講究效益的,當然是希望一個產品一份代碼就搞定啦。在這時我們就可以使用 C 語言中的條件編譯啦,它

使用C#的Conditional特性與Unity編輯器宏命令做條件編譯

運行時 符號 unit log edit ext 通過 space 編譯 概要 在傳統的C#項目中,用Conditional特性做條件編譯時,需要在Visual Studio中項目的屬性裏添加上條件編譯符號,用法參考這篇文章。 而在Unity項目中,條件編譯符號需要在Uni

C語言編譯預處理

wall shadow c程序 方式 共享庫 blog gcc編譯 程序員 proc 1、C程序的過程 處理流程: 靜態鏈接與動態鏈接: 鏈接可以分為靜態鏈接(靜態庫)與動態鏈接(共享庫):?靜態庫是代碼的歸檔,在使用靜態庫時是采用的復制代碼的方式。共享庫是可執行文件的組