- 1.define是预处理指令的一种,主要是在编译前进行文本替换,用来定义宏,称为:"宏定义",宏定义分为:带参宏第一和不带参宏定义,又叫宏替换
- #define kCount 4 //编译前会将文件中的所有kCount替换为4
- 2.typedef用于给类型起别名,能够简化类型定义,能够给其他类型取一个有意义的别名
- 例如:UInteger
- typedef unsigned int UInteger
- 所以 UInteger 等同 unsigned int
- 两者的区别
- 1.一个是编译前执行的,一个是运行时的
- 2.两者都可以给类型起别名
- 例如:
- typedef int Integer1
- #define Integer2 int
- Integer1 a=0;
- Integer2 b=0;
- 3.当定义指针类型时
- typedef char* String1;
- #define String2 char*
- String1 a与String2 b中的a与b都是char* 类型
- String1 a,b与String2 c,d中的a与c类型相同,b与c的类型则不同
- 分析
- String1 a,b 等同于
- char*a;
- char* b;
- String2 b,d 等同于char*b,d;
- 分开写就是
- char*b;
- char d;
-
-
-
复制代码 |