1、typedef工具是一种高级数据特性,他使您能够为某一类型创建自己的名字。
例如:
typedef unsigned char BYTE
通常我们使用醒目的大写字母定义,以提醒用户这个类型名称是一个符号缩写
接下来就可以用刚刚定义的类型名BYTE来定义变量了
BYTE x;
2、typedef用来命名一个结构类型时,可以省去结构的标记:
struct x1
{
......
};
typedef struct
{
......
} x2;
第一种形式声明了一个“结构标签”,第二种声明了一个“类型定义”
struct x1 a;
x2 b;
3、说起typedef,就不得不提到与它很相似的#define,他们都能自定义创建自己的名字,但也存在一些不同:
(1)与#define不同,typedef给出的富豪名称仅限于对类型,而不是对值;
(2)typedef的解释由编译器,而#define则通过预处理器执行;
(3)typedef比#define更加灵活,体现之一就是在指针问题的处理上。
例如下面的例子:
typedef char *String_t;
#define String_d char*
String_t s1, s2;
String_d s3, s4;
结果是s1, s2, s3都被定义成了char *,但s4却被定义成了char类型,这显然不是我们希望看到的。
参考资料:(1)《C Primer Plus》第五版
(2)《你必须知道的495个C语言问题》