首页 > 代码库 > 关于typedef的用法总结

关于typedef的用法总结

不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中。typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法。

 

用途一:

定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:

char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,

// 和一个字符变量;

以下则可行:

typedef char* PCHAR;

PCHAR pa, pb;  

这种用法很有用,特别是char* pa, pb的定义,初学者往往认为是定义了两个字符型指针,其实不是,而用typedef char* PCHAR就不会出现这样的问题,减少了错误的发生。

 

用途二:
用在旧的C代码中,帮助struct。以前的代码中,声明struct新对象时,必须要带上struct,即形式为: struct 结构名对象名,如:

1 struct tagPOINT1
2 
3  {
4     int x;
5 
6     int y; 
7 };
8 
9 struct tagPOINT1 p1;

 

而在C++中,则可以直接写:结构名对象名,即:tagPOINT1 p1;

1 typedef struct tagPOINT
2 {
3     int x;
4 
5     int y;
6 }POINT;
7 
8 POINT p1; // 这样就比原来的方式少写了一个struct,比较省事。

 

关于typedef的用法总结