欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++ 中typedef用法

程序员文章站 2024-03-23 13:55:10
...

typedef用于定义类型别名,而不是简单的宏替换。

1.用于大量指针定义

typedef char* PCHAR; // 一般用大写
PCHAR pa, pb; // 声明两个指向字符变量的指针

char *pa, *pb;//等同

2.用于结构体声明和调用

struct tagPOINT1  
{  
    int x;  
    int y;  
};  
struct tagPOINT1 p1;

typedef struct tagPOINT  
{  
    int x;  
    int y;  
}POINT;  
POINT p1; // 这样就比原来的方式少写了一个struct,比较省事,尤其在大量使用的时候

3.用于与平台无关类型的定义。

比如定义一个叫 REAL 的浮点类型,在目标平台一上,让它表示最高精度的类型为:
typedef long double REAL; 
在不支持 long double 的平台二上,改为:
typedef double REAL; 
在连 double 都不支持的平台三上,改为:
typedef float REAL; 
也就是说,当跨平台时,只要改下 typedef 本身就行,不用对其他源码做任何修改。

4.用于为复杂的声明定义一个简单的别名

原声明:doube(*)() (*e)[9]; 
变量名为e,先替换左边部分,pFuny为别名一:
typedef double(*pFuny)();
再替换右边的变量e,pFunParamy为别名二
typedef pFuny (*pFunParamy)[9];
原声明的最简化版:
pFunParamy e;


与define的区别:有指针的场合

typedef char *pStr1;  
#define pStr2 char *;  
pStr1 s1, s2;  
pStr2 s3, s4;//s1、s2、s3都被定义为char *,而s4则定义成了char


参考资料:https://blog.csdn.net/ameyume/article/details/6326278

相关标签: typedef