C C define巨集定義

2021-08-25 14:20:52 字數 1512 閱讀 1603

## 連線前後兩個值

#define connect(a, b) a##b

int c = combom(1, 2);

//c = 12;

# 給後面的字元新增雙引號

#define combom(b) #b

std::string c = combom(laji);

cout << c << endl;

##和#在乙個巨集語句中只能使用乙個

#@給後面新增單引號

用##和#綜合拼接字串

#include #include "test.h"

#define a(a,b) a##b

#define g(a) #a

#define h(a) g(a)

int main(int argc, const char * argv)

/* * a: a(1,2) ==> 12

* b: g(a(2,3)) ==> "a(2,3)" //如果遇到#開頭直接「」替換,不管後面是什麼

* c: h(a(2,3)) ==> g(a(2,3)) ==> g(23) ==> "23" //執行完外層的h()後不會馬上執行產生的g(),而是先繼續向里執行

* d: g(h(a(2,3))) ==> "h(a(2,3))" //如果遇到#開頭直接「」替換,不管後面是什麼

* e: h(g(h(a(2,3)))) ==> "g(g(h(a(2,3))))" ==> g("h(a(2,3))") ==> ""h(a(2,3))""

* f: h(h(h(a(2,3)))) ==> g(h(h(a(2,3)))) ==> g(g(h(a(2,3)))) ==> g(g(g(a(2,3)))) ==> g(g(g(23))) ==> g(g("23")) ==> g(""23"") ==> """23""" //先從外往裡,再從裡往外

*///結果如下

a = 12

b = a(2,3)

c = 23

d = h(a(2,3))

e = "h(a(2,3))"

f = "\"23\""

#ifdef debug    

除錯時的新增列印的用法

#include #undef test_debug

#define test_debug

int main(int argc, const char * argv)

#if #elif #else #endif

#include #define test 3

int main(int argc, const char * argv)

內建巨集

int main(int argc, const char * argv)
#error會在編譯時列印語句,用xcode時,會在編寫時就直接提示。

c c define巨集定義用法語法詳解

c c 中,有這樣的乙個預處理,就是define 可以用 define 定義乙個識別符號來表示乙個常量。特點是 定義的識別符號不佔記憶體,只是乙個臨時的符號,預編譯後這個符號就不存在了。define被稱作是巨集定義使用起來十分的方便簡單,比如下面的例子 define n 1000000 這是乙個簡單...

abs int 巨集定義 巨集定義和巨集方法

巨集定義和巨集方法 定義機型 define is iphone5 uiscreen instancesrespondtoselector selector currentmode cgsizeequaltosize cgsizemake 640,1136 uiscreen mainscreen cu...

C 巨集定義 巨集定義求面積

學過c語言的讀者,對巨集定義應該不陌生,同樣在c 中,也可以用巨集定義命令將乙個指定的識別符號來代表乙個字串,巨集定義的作用一般是用乙個短的名字代表乙個長的字串。一般形式為 define 識別符號 字串定義pi的符號常量 define pi 3.14在c 中還可以用 define命令定義帶引數的巨集...