## 連線前後兩個值
#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命令定義帶引數的巨集...