欢迎来到天天文库
浏览记录
ID:39548706
大小:112.00 KB
页数:15页
时间:2019-07-06
《DS_typedef(typedef)数据结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据结构之——DS_typedef…….Austainfel一、typedef——来源、二、typedef——语法描述1.格式:typedef类型名称类型标识符;2.定义新的类型名称后,可像基本数据类型来定义变量3.typedef的主要应用有如下的几种形式1.为基本数据类型定义新的类型名2.为自定义数据类型(结构体、公用体和枚举类型)定义简洁的类型名称3.为数组定义简洁的类型名称4.为指针定义简洁的名称(数据指针定义新的名称、函数指针定义新的名称)三、typedef——案例四、typedef——与define、#
2、const五、宏定义1.typedef——来源现实生活中,信息的概念可能是长度,数量和面积等。在C语言中,信息被抽象为int、float和double等基本数据类型。从基本数据类型名称上,不能够看出其所代表的物理属性,并且int、float和double为系统关键字,不可以修改。为了解决用户自定义数据类型名称的需求,C语言中引入类型重定义语句typedef,可以为数据类型定义新的类型名称,从而丰富数据类型所包含的属性信息。一种在计算机编程语言中用来声明自定义数据类型、声明定义一个结构体,较好地体现程序的模块化结构
3、,使程序美观、可读性、代码更健壮。。创建平台无关类型,隐藏复杂和难以理解的语法。使用typedef可编写出更美观和可读的代码。typedef能隐藏笨拙的语法构造以及平台相关的数据类型,增强可移植性和未来的可维护性。1.typedef——语法描述一、格式:typedef类型名称类型标识符;注“typedef”系统保留字“类型名称”已知数据类型名称(基本数据类型、用户自定义数据类型)“类型标识符”新的类型名称例:typedefdoubleLENGTH;二、定义新的类型名称后,可像基本数据类型来定义变量例:typede
4、fintCOUNT;intb;COUNTc;注此声明定义了一个int的同义字,名字为COUNT。typedef并不创建新的类型,仅仅为现有类型添加一个同义字。可以在任何需要int的上下文中使用COUNT。三、typedef的主要应用有如下的几种形式为基本数据类型定义新的类型名例:typedefintCOUNT;typedefdoubleAREA;目的丰富数据类型中包含的属性信息、系统移植的需要为自定义数据类型(结构体、公用体和枚举类型)定义简洁的类型名称例:typedefstruct {doublex;doubl
5、ey;doublez;}Point;PointNeed_Point;为数组定义简洁的类型名称例:inta[10],b[10],c[10],d[10];//(定义三个长度为5的整型数组)TypedefintINT_ARRAY[10];//0为数组的长度INT_ARRAYa,b,c;(INT_ARRAY_10为新的类型名,以10为数组的长度a,b,c均是长度为10的整型数组)为指针定义简洁的名称(数据指针定义新的名称、函数指针定义新的名称)例:typedefchar*STRING;STRINGcsName={“Jho
6、n”};typedefint(*MyFUN)(inta,intb);//MyFUN代表int*XFunction(inta,intb)//类型指针的新名称)typedefint(*MyFUN)(inta,intb);intMax(inta,intb);MyFUN*pMyFun;pMyFun=Max;例:typedefchar*pstr; intmystrcmp(pstr,pstr);typedefconstchar*pstr;//错误写法:intmystrcmp(constpstr,constpstr);目的t
7、ypedef可掩饰复合类型如:指针和数组。注意1)typedef的目的是为已知数据类型增加一个新的名称。因此并没有引入新的数据类型。2)typedef只适于类型名称定义,不适合变量的定义。3)typedef与#define具有相似的之处,但是实质不同。提示【#defineAREAdouble与typedefdoubleAREA可达到相同效果,但实质不同。【#define为预编译处理命令,主要定义常量,此常量可以为任何的字符及其组合,在编译之前,将此常量出现的所有位置,用其代表的字符或字符组合无条件的替换,然后进行
8、编译。【typedef是为已知数据类型增加一个新名称,原理与使用int、double等保留字一致。3.typedef——案例一.基本概念剖析int*(*a[5])(int,char*); //#1 void(*b[10])(void(*)());//#2 double(*)()(*pa)[9]; //#31.C语言中函数声明和数组声明。函数声明一
此文档下载收益归作者所有