Typedef 的应用小结

在不同的平台结构上,由于硬件的差异性,即便是相同的数据类型定义(如int )可能所占用的字节数也是不同的。这对应用程序的可移植性提出了巨大的挑战。

Typedef 正是用于解决这种差异性的一种很好的方法。它有助于创建与平台无关的类型,甚至能够隐藏复杂和难以理解的语法。也就是说,使用typedef能为代码的可移植性带来好处。提高代码的健壮性。

Typedef是怎样实现平台的无关性呢?同一种类型在一种平台上是一种模样,移植到另外一种平台上可能就会换做另外一种类型,那怎样解决呢?要一个个改变吗?

当然不!Typedef能够为现有的类型(即函数库里)创建同义字。一种程度上也定义了易于记忆的类型名,从而更好的实现作者的意图。本文主要介绍C语音中typedef的用法。编程中使用typedef的目的一般有两个:一是给变量起一个容易记忆的新名字。另一个是简化一些比较复杂的类型声明。如下所示:

一 typedef 最简单的使用

typedef int size;  //此声明定义了一个int的同义字,即size。

注:typedef 并不能创建新的数据类型,它的作用仅仅为现有类型添加一个同义字。经过上面声明,你可以在所有用到int的地方用size来代替。语句定义的结尾有.

二 typedef 与结构体结合使用

Typedef struct tagmyStruct

{

int iNum;

long iLength;

}MyStruct;

此语句实际完成两个操作:

1、定义一个新的结构类型

等同于:

Struct tagmyStruct

{

int iNum;

long iLength;

};

我们可用 struct tagmyStruct varName来定义变量,但是使用tagmyStruct varName来定义变量是不对的。因为struct 和tagmyStruct合在一起才能表示一个结构类型。

2、typedef 为这个新的结构体起一个名字 MyStruct

typedef struct tagMyStruct Mystruct ;

因此,MyStruct 实际上相当于 struct tagMyStruct,我们可使用MyStruct varname 来定义变量。

typedef struct node 

{

char name[20];

struct node *link;

}stu;

这是定义的结构体变量,一个单元包含两个部分,一个用来存放name的数组,一个用来存放下一个单元地址的指向结构体node的指针。假设该单元的地址是p,那么p->name表示第一部分name[20]的地址,p->link表示第二部分,作用是存放下一个单元的地址。

 

 2011.4.23

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值