define 和 typedef
typedef是一种高级数据特性,使您能够为某一类型创建您自己的名字,和define相似,但有3个不同之处:
1. 与define不同,typedef给出的符号名称仅限于对类型,而不是对值;
2. typedef的解释由编译器,而不是预处理器执行;
3. typedef在其范围内比define零活。
define实现不了的功能:
1. typedef char * STRING;
STRING识别为一个char指针的标示符,如果没有typedef,将识别为一个char指针。
STRING name,sign; <==> char *name,*sign;
若为#define STRING char *,则STRING name,sign; <==> char *name,sign;
typedef的一个优点是可以为经常出现的类型创建一个方便、可识别的名称。
2. typedef的名称被用于复杂的类型:
typedef char (*FRPTC()) [5];
把FRPTC声名为一个函数类型,该类型的函数返回一个指向含有5个元素的char数组的指针
注:typedef并不创建新的类型,它只是创建了便于使用的标签。
阅读(635) | 评论(0) | 转发(0) |