巨集定義的用法

2021-08-29 20:48:37 字數 1245 閱讀 1417

有五種用法,含有引數和不含引數,行尾都不用加分號

#define   《識別符號》  [《替換列表》]

//類似於全域性變數了

//如果其他檔案沒有包含定義巨集的檔案,則在巨集定義的位置結束,如果有包含,則到包含的檔案結束

#define largest_num 1000

#define  《識別符號》  ([引數列表]) ([替換列表])

//注意,替換列表裡面必須加上括號,否則可能會導致歧義

//當然,替換列表也可以新增中括號,就看自己的用法了{}

#define add (a,b) (a+b)

#ifdef   #else  #ifndef  #endif 組合起來可以進行條件編譯

//#ifdef以及#ifndef和#endif 是成對出現的

#ifdef debug..

.#else..

.#endif

檔案包含,在多重引用的情況下,很容易搞混乙個h檔案是否已經包含。如果不確定,可以使用如下語句進行包含

#ifndef _headfile_

#define _headfile_..

....

#endif

更多的替換 ##,#@,#

//作用是連線x和y

#define conn(x,y) x##y..

.int a=

conn

(123

,456);

//那麼a=123456

string s=

conn

(123

,456);

//那麼s="123456"

//作用是把x轉換為char並返回

#define tochar (x) #@x ..

.//x不能超過4個字元,否則就會報超長錯誤

char a =

tochar(1

)

//作用是把x轉換為string,並返回,

#define tostring (x) #x..

.//返回的結果是"123456"

string s=

tostring

(123456

)

關於巨集定義的用法

如何解釋下面這段 define led1 a if a gpio setbits gpioc,gpio pin 3 else gpio resetbits gpioc,gpio pin 3 首先,這個是用巨集定義的方式包裝成類似函式那樣,但不是函式呼叫 你在 中呼叫 led1 1 實際上通過巨集定義...

巨集定義的幾種用法

1 用 define 定義識別符號的一般形式為 define 識別符號 常量 注意,最後沒有分號 2 第一種用法,巨集定義固定值 define pi 3.14 定義pi固定為3.14程式中不可修改 2 第二種用法,巨集定義乙個帶引數值 define data n if n printf 真 else...

巨集定義中 和 的用法

1.前言 使用 把巨集引數變為乙個字串,用 把兩個巨集引數貼合在一起.2.一般用法 include include using namespace std define str s s define cons a,b int a e b int main 3.注意事項 當巨集引數是另乙個巨集的時候,...