一、typedef
給對應(yīng)類型改個名字
//給double取別名為doubleA
typedef double doubleA;
//給man結(jié)構(gòu)體取別名為Oldman。[使用: Oldman m = {"hah"};]
typedef struct Man
{
NSString *name
}Oldman;
//給block取別名HBlock
typedef void(^HBlock) (int a,int b);
二邦马、#define
主要是文本替換
//MyString替換后面的文本
#define MyString @"Hello World !"
//MyString2替換MyString
#define MyString2 MyString
三腥刹、typedef和#define使用注意點(diǎn)
define是文本替換马胧,屬于預(yù)編譯指令,本身不參與編譯衔峰,除非希望替換的文本中有佩脊;,否則不用加垫卤。typedef是類型替換威彰,語句的一種,結(jié)尾必須有穴肘;
define寫在方法/函數(shù)中則作用域從寫的地方開始有效歇盼,直至使用#undef(不寫此指令后面一直有效)。typedef寫在方法/函數(shù)中评抚,則作用域只在此方法/函數(shù)中有效豹缀。
若使用typedef char * MyString;則MyString s1,s2 等價于 char *s1;char * s2
若使用#define MyString char * 則MyString s1,s2 等價于char *s1,s2; 即char *s1; char s2;