黑马程序员技术交流社区
标题:
define和typedef的区别
[打印本页]
作者:
megatron
时间:
2014-7-18 22:44
标题:
define和typedef的区别
define和typedef的区别
作者:
此生逍遥
时间:
2014-7-18 22:53
#define是预处理命令,在编译处理时进行简单的替换,不做正确性检查,不管含义是否正确照样带入,只有在编译已展开的源程序时才会发现可能的错误并报错。
typedef是在编译时处理的,它在自己的作用域内给一个已经存在的类型一个别名
作者:
⒈心只霸占沵
时间:
2014-7-18 23:08
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;
复制代码
作者:
阳光地带
时间:
2014-7-19 00:41
#define 是宏定义。
typedefine是用来给类型重命名的。
作者:
legendary
时间:
2014-7-19 12:45
这个意思差不多,得自己好好体会
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2