ios 預處理 巨集 define

2022-07-02 22:03:11 字數 2269 閱讀 7801

目錄:

(1)分類

(2)特點

(3)巨集定義的基本操作

(4)巨集的高階用法:(帶引數的用法)

(5)條件編譯指令

一、分類:

(1)檔案包含指令:#include

(2) 巨集定義

(3)條件編譯指令

二、特點:

(1)都是以#開頭

(2)預處理指令都是在編譯之前執行

(3)預處理指令後面都沒有分號

三、巨集定義的基本操作

1、 預處理命令,在編譯之前執行

2、 作用:可以為一段**定義1個標識,如果要使用這個**,直接使用標識就可以

3 、 語法: #define  巨集名  值    

#define 巨集名    值

#define name @"張三"

4、 原理:在預編譯的時候,就會執行原始檔中的預處理命令

會將**中使用巨集名的地方替換為巨集值

5、需要注意的地方:

(1)巨集值可以是任意的東西,定義的時候並不會檢查語法;

(2)如果巨集值是乙個表示式,那麼巨集值並不是這個表示式的結果,而是這個表示式本身;

#define num (1+10+90)

(3)如果巨集值當中包含變數名,在使用之前必須保證這個變數已經存在

#define q   a+a

(4)巨集的作用域:

可以定義在函式的內部,也可以定義在函式的外面

從定義巨集的地方,後面的所有的地方,都可以直接使用;

(5)#undef  巨集名

可以讓指定的巨集提前消失

(6)雙引號中的內容不會認為是巨集名;

(7)巨集的層層替換,可以使用 

#define h 3

#define w 3.14

#define s h*w

(8)巨集值後面可以新增分號,但是新增的分號作為巨集值一起給巨集名; 

(9) 可以定義任意**段為巨集

#define和 typedef的區別:

1).  #define是乙個預處理指令,在預編譯的時候執行,在預編譯的時候把巨集名替換成巨集值;

typedef是c語言**, 在**雲行的時候才會執行,

2)#define 可以將任意的**取1個識別符號

typedef只能為資料型別取名字

四、巨集的高階用法:(帶引數的用法)

1.使用有引數的巨集,就必須在使用的時候傳值     

#define n(a) a+a+a

//使用

n(1)

#define sum(a,b) a+b

//使用

sum(1, 2)

注意: 使用:巨集不是函式,巨集的引數不需要加型別

如果換行,巨集就結束了

五、 條件編譯指令

1、 (1) 預處理指令,預編譯階段執行

(2)可以讓編譯器只編譯部分指令

2、使用:

條件編譯的條件只能是巨集,不能是函式變數     

(1)、#ifndef

#endif

#ifndef debug

//如果沒有定義debug這個巨集就執行下面的第d%行

#define nslog(...) nslog(@"%s 第%d行 \n %@\n\n",__func__,__line__,[nsstring stringwithformat:__va_args__])

#else

//否則的話就執行nslog

#define nslog(...)

#endif

(2)、#ifdef

#ifdef debug  //

如果定義debug這個巨集就執行下面的第d%行

#define nslog(...) nslog(@"%s 第%d行 \n %@\n\n",__func__,__line__,[nsstring stringwithformat:__va_args__])

#else

//否則的話就執行nslog

#define nslog(...)

#endif

(3)、#if   else

#if debug==0

#define baseurl @"測試"

#else

#define baseurl @"正式"

#endif

預處理編譯 巨集 define

預處理 main.c pre sccess created by qianfeng on 14 11 3.include define zoe0 0 define pi a 2.1415926 a undef pi 表示在undef以上的pi巨集都被登出,無效。undef pi 定義字串巨集函式 d...

C語言 預處理二(巨集定義 define)

define 巨集定義 巨集定義一般大寫 知識點一 define的作用域 從 define開始,從上往下,如果遇到 undef就到 undef處結束,如果沒有就是作用於當前整個檔案 include include 知識點二 巨集定義作用 巨集定義作用1 起到替換作用,可以定義常量 define x ...

預處理指令define

1 用預處理指令 define 宣告乙個常數,用以表明1年中有多少秒 忽略閏年問題 define seconds per year 60 60 24 365 ul 我在這想看到幾件事情 define 語法的基本知識 例如 不能以分號結束,括號的使用,等等 懂得預處理器將為你計算常數表示式的值,因此,...