天天看點

#define的用法

#define N 100  ok

#define N 100; error

#define N = 100  error   int a[N] => int a[= 100] error

#define pin int*   pin a,b; error(a為int*,b為int)

2. 特殊用法

#define BEGIN {

#define END }

int main BEGIN

    printf("haha");

END

定義一個循環

#define LOOP for(;;)

重新定義資料類型

#define IT int

3.帶參數的宏

#define MAX(x,y) ((x)>(y)?(x):(y)) 

4.宏的特殊單行定義

#define C(x) #x  将宏參數進行字元串字面量化并且加""号 

const char* p = C(hello,world);

printf("p=%s\n",p);//結果為hello,world

5.define 的多行定義

define可以替代多行的代碼,在每一個換行的時候加上一個"\"

#define func() printf("hello \ 

,world")

int main(void){

    func(); //hello ,world

    return 0;

}

6.在大規模的開發過程中最重要的是條件編譯

#ifdef WINDOW

#endif

...

#ifdef LINUX

7.取消宏

#undef 辨別符

8.條件編譯

#ifdef XXX 

#else

9.有用的宏

__LINE__被編譯檔案的行數(整型)

__FILE__被編譯檔案的名字(字元型)

__DATE__編譯日期(字元型)

__TIME__編譯時間(字元型)

printf("__LINE__:%d\n",__LINE__);  5

printf("__FILE__:%s\n",__FILE__);  01.c

printf("__DATE__:%s\n",__DATE__);  Dec 24 2016

printf("__TIME__:%s\n",__TIME__);  14:23:36

本文轉自神ge 51CTO部落格,原文連結:http://blog.51cto.com/12218412/1885750