Marcos巨集定義

2021-08-20 15:23:42 字數 1340 閱讀 3514

demos

#define pi 3.14

#define log(x) printf("this is test: x = %d", x)

#define log(x) printf("this is test: "#x" = %d", x)

#define power(x) x*x

#define rgba(r, g, b, a) [uicolor colorwithred:r/255.0f green:g/255.0f blue:b/255.0f alpha:a]

#define print(...) printf(__va_args__)

#define rgb(r, g, b)

#define weakify( x ) autoreleasepool{} __weak typeof(x) weak##x = x;

#define weakify(...) \ autoreleasepool {} \ metamacro_foreach_cxt(rac_weakify_,, __weak, __va_args__)

#define rgb(r, g, b)
這個巨集是乙個」多行巨集」定義的示例, 即在除了最後一行的最後加上反斜線(因為反斜線和換行符的組合在預編譯之前會被系統刪除), 同時這個巨集也說明了, 巨集的定義是可以巢狀的(有些編譯器可能不支援, xcode中是支援的…)

#define print(...) printf(__va_args__)這個巨集使用了兩個新的東西…和va_args, 這兩個是用來定義可變引數巨集的, 可以看到是很簡單的, 唯一乙個注意點就是, …要放在引數的最後, 如果你使用c定義可變引數的函式就會發現過程就很複雜了

#define print(...) printf(__va_args__)

int main(int argc, const

char * argv)

#define weakify( x ) autoreleasepool{}

__weak typeof(x) weak##x = x;

加上 autoreleasepool{}使用巨集的時候就應該加上@

像這樣:

- (void)delay );

}當然如果你沒有加autoreleasepool{}, 使用巨集就不用加上@了

#define weakify( x ) __weak typeof(x) weak##x = x;

像這樣:

- (void)delay );

}

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命令定義帶引數的巨集...

預定義,巨集定義

巨集定義 其作用就是 換其名曰 給程式中的一段特殊的 函式,資料取了個簡單明瞭的名字。不過有一點這傢伙的作用範圍是全域性的。即使它是在某乙個函式塊中定義的。這個其實也容易理解。因為巨集定義是預定義的一種,在我們的程式之前,由預編譯器 cpp 提前編譯出來了,那個時候程式裡的結構是個啥樣子編譯器壓根就...