1 / 5
文档名称:

typedef的用法总结.doc

格式:doc   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

typedef的用法总结.doc

上传人:xxj16588 2016/8/1 文件大小:0 KB

下载得到文件列表

typedef的用法总结.doc

相关文档

文档介绍

文档介绍:typedef 的用法总结用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, 和一个字符变量; 以下则可行: typedef char* PCHAR; // 一般用大写 PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针虽然: char *pa, *pb; 也可行, 但相对来说没有用 typedef 的形式直观, 尤其在需要大量指针的地方, ty pedef 的方式更省事。用途二: 用在旧的 C 代码中(具体多旧没有查),帮助 struct 。以前的代码中,声明 str uct 新对象时,必须要带上 struct ,即形式为: struct 结构名对象名,如: struct tagPOINT1 { int x; int y; }; struct tagPOINT1 p1; 而在 C++ 中,则可以直接写:结构名对象名,即: tagPOINT1 p1; 估计某人觉得经常多写一个 struct 太麻烦了,于是就发明了: typedef struct tagPOINT { int x; int y; }POINT; POINT p1; // 这样就比原来的方式少写了一个 struct ,比较省事,尤其在大量使用的时候或许,在 C++ 中, typedef 的这种用途二不是很大, 但是理解了它, 对掌握以前的旧代码还是有帮助的,毕竟我们在项目中有可能会遇到较早些年代遗留下来的代码。用途三: 用 typedef 来定义与平台无关的类型。比如定义一个叫 REAL 的浮点类型,在目标平台一上,让它表示最高精度的类型为: typedef long double REAL; 在不支持 long double 的平台二上,改为: typedef double REAL; 在连 double 都不支持的平台三上,改为: typedef float REAL; 也就是说,当跨平台时,只要改下 typedef 本身就行,不用对其他源码做任何修改。标准库就广泛使用了这个技巧,比如 size_t 。另外, 因为 typedef 是定义了一种类型的新别名, 不是简单的字符串替换, 所以它比宏来得稳健(虽然用宏有时也可以完成以上的用途)。用途四: 为复杂的声明定义一个新的简单的别名。方法是:在原来的声明里逐步用别名替换一部分复杂声明, 如此循环, 把带变量名的部分留到最后替换, 得到的就是原声明的最简化版。举例: 1. 原声明: int *(*a[5])(int, char*); 变量名为 a ,直接用一个新别名 pFun 替换 a 就可以了: typedef int *(*pFun)(int, char*); 原声明的最简化版: pFun a[5]; 2. 原声明: void (*b[10]) (void (*)()); 变量名为 b ,先替换右边部分括号里的, pFunParam 为别名一: typedef void (*pFunParam)(); 再替换左边的变量 b, pFunx 为别名二: typedef void (*pFunx)(pFunParam); 原声明的最简化版: pFunx b[10]; 3. 原声明: