Object C學習筆記22 define 用法

2021-09-06 14:46:33 字數 1352 閱讀 1856

一. #define 簡介

在c中利用預處理**,可以讓你的**變得更加具有可讀性,更加符合個人的編碼風格,這也是c的強大之處。#define可以實現**的預處理,**在編譯之前會被提前處理。

二. 常量處理

語法: #define 常量名 產量值

#define宣告主要用於將常量(或字串)賦予有意義的名字,這個和.net中的常量const比較的類似。

#import

#define name "abc"

int main(int argc, const

char *argv)

return0;

}

上面的**定義了乙個 name常量,常量的值為"abc", 測試的**輸出了常量值。

請注意格式。#define命令之後為常量名,再之後為所賦的代替值,用空格隔開,結尾不需分號。如果#define一旦被定義,那麼就不能被修改,一般#define定義在乙個檔案的頂部,在#import 之後。

三.多個常量定義

#import

#define name "abc"

#define a 2

#define b a*2

int main(int argc, const

char *argv)

return0;

}

在**中定義了乙個a常量2,而在定義的常量b中定義了 b =a*2, b的定義使用了#define a。

四. 巨集定義

#define宣告中還可以使用引數,並且可使用多個引數;這一特性被稱為「巨集」

#import

#define func(x,y) ( (x) * (y))

#define myfun(x) (x * 5)

int main(int argc, const

char *argv)

return0;

}

是不是很像乙個函式的定義,在上面的**定義了兩個巨集,func,myfun,他們都是乙個表示式。使用帶引數的巨集定義可完成函式呼叫的功能,又能減少系統開 銷,提高執行效率。

五. #define 和 typedef 的比較

(1)#define 巨集定義可以使用 #ifdef ,#ifndef等來進行邏輯判斷,還可以使用#undef來取消定義

(2)使用typedef定義的變數型別其作用範圍限制在所定義的函式或者檔案內,而使用#define 不能

Object c學習筆記十二 特性

前面我們在編寫的時候用到了set方法和get方法。在object c2.0中引入了特性 property 在標頭檔案中修改,用到關鍵字 property 可以看如下 property float rainhandling property float snowhandling void setrai...

Object c基礎程式設計學習筆記 集合

1 nsarray 首先,nsarray有兩個限制 1 首先,它只能儲存oc物件,並不能儲存c語言的資料型別 2 其次,不可以儲存nil,因為nsarray中nil代表結束,但是如果我們想要新增乙個空,那麼應該使用nsnull unsigned count 這裡可以知道包涵物件的個數 id obje...

ios學習筆記之Object C 集合

obejct c中包含了三種集合,分別是 陣列 字典和集 set 陣列和c語言中的陣列相似,但是oc中的陣列只能儲存物件,不能儲存基本資料型別,如int float enum struct等,也不能儲存nil。它也提供了編制好的索引物件,可以通過制定索引找到要檢視的物件。包含可變陣列 nsmutab...