typedef说明

1.struct Student

  {

       int num;

       char sex;

       char name[50];

  };

  C中,要定义一个Student类型的变量需要使用方式struct Student st;

  C++中,要定义一个Student类型的变量只需要Student st;

  为方便,可使用typedef。如下:

  typedef struct tagSTUDENT

  {

       int num;

       char sex;

       char name[50];

  }STUDENT;

  这样,即使是在C中,要定义一个tagSTUDENT类型的变量也只需要使用STUDENT st;

2.同时声明指针型的多个变量时

  char* pa, pb;//实际pachar*类型,即指向字符变量的指针;而pbchar类型,即字符型变量

  使用typedef可解决此问题。

  typedef char* PCHAR;

  PCHAR pa, pb;//声明了两个char* 变量

  对结构体也是一样的。

  typedef struct tagSTUDENT

  {

       int num;

       char sex;

       char name[50];

  }* PSTUDENT, STUDENT;//实际PSTUDENTstruct tagSTUDENT*类型,STUDENTstructtagSTUDENT类型

3.typedef来定义与平台无关的类型。

   比如定义一个叫 REAL 的浮点类型,在目标平台一上,让它表示最高精度的类型为:

   typedef long double REAL; 

   在不支持 long double 的平台二上,改为:

   typedef double REAL;

   在连 double 都不支持的平台三上,改为:

   typedef float REAL;

   也就是说,当跨平台时,只要改下 typedef 本身就行,不用对其他源码做任何修改。

   标准库就广泛使用了这个技巧,比如size_t。另外,因为typedef是定义了一种类型的新别名,不是简单的字符串替换,所以它    比宏来得稳健。

4. typedef char* PCHAR1;

    #define PCHAR2 char*;

    PCHAR1 pa, pb; //pa,pb均为char*类型

    PCHAR2 pa, pb; //等价于char* pa, pb。相当于定义了一个char*和一个char

 

  参考

  [1] http://www.cnblogs.com/csyisong/archive/2009/01/09/1372363.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值