- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.5 自定义类型 7.5.1 自定义类型( typedef) 除了可以直接使用C提供的标准类型名(如int、char、float、double、long等)和前面介绍的结构类型、共用类型、指针、枚举类型外,C语言允许由用户自己定义类型说明符,也就是说允许用户为数据类型取“别名”。这一功能要求用类型定义符typedef来完成。 返回目录 7.5 自定义类型 7.5.1 自定义类型( typedef) 例如,整型变量说明符int取自单词integer的前三个字母,为了增加程序的可读性,可把整型说明符用typedef定义为: typedef int INTEGER; 以后就可用INTEGER来代替int作整型变量的类型说明。 同样地,也可以用语句: typedef float REAL; 来使REAL代替float作为实型变量的类型说明。经过用typedef说明后,语句 INTEGER a,b;就等效于语句int a,b; 而语句 REAL x,y等效于语句float x,y;。 7.5 自定义类型 7.5.1 自定义类型( typedef) typedef定义的一般形式为: typedef 原类型名 新类型名; 其中原类型名中含有定义部分,新类型名一般用大写表示,以便于区别。具体说来,定义一个新的类型名的方法是: (1) 先按定义变量的方法写出定义体(如int i;); (2) 将变量名换成新类型名(如将i换成COUNT); (3) 在最前面加typedef(如typedef int COUNT); (4) 然后可以用新类型定义变量(如COUNT X)。 7.5 自定义类型 7.5.1 自定义类型( typedef) 另外,用typedef定义数组、指针、结构等类型将带来很大的方便,不仅使程序书写简单,而且使意义更为明确,因而增强了可读性。 例如: typedef int NUM[100]; /*定义NUM为整型数组,该数组元素有100个*/ NUM a, b, c; /*定义了三个数组元素达100的整型数组*/ typedef char *STRING; /*定义STRING为字符指针类型*/ STRING p,s[10]; /*p为字符指针变量,s为指针数组 */ typedef int (*POINTER)( )/*定义POINTER为指向函数的指针类型,函数返回整型值*/ POINTER p1,p2; /* p1和p2为指向函数的指针变量 */ 7.5 自定义类型 7.5.1 自定义类型( typedef) 又例如语句: typedef struct { int month; int day; int year; }DATE; 定义了一个新类型名DATE,它代表所定义的一个结构类型。这时就可以用DATE定义变量: DATE birthday; /*birthday是结构变量,注意不要写成struct DATE birthday;*/ DATE *p; /*p为指向此结构类型数据的指针*/ 7.5 自定义类型 7.5.1 自定义类型( typedef) 类型定义符typedef的几点说明: (1) 用typedef可以定义各种类型名,但不能用来定义变量。 (2) 用typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型。 (3) typedef与#define有相似之处,如:typedef int COUNT;和#define COUNT int 的作用都是用COUNT代表int。但事实上,它们两者是不同的。#define是在预编译时处理的,它只能作简单的字符串替换,而typedef是在编译时处理的。实际上它并不是作简单的字符串替换,例如: typedef int NUM[10]; 并不是用NUM[10]去代替int,而是采用如同定义变量的方法那样来定义一个类型。当用typedef定义一些数据类型(尤其是象数组、指针、结构、共用类型等类型数据)时,可把它们单独放在一个文件中,然后在需要用到它们的文件中用#include命令把它们包含进来。 7.1 结构类型 7.1.5 用指针处理链表 其中next是指针类型的成员名,它指向struct stu类型数据(即next所在的结构类型数据)。构成的链表结构如图7.8所示。该链表中每一个结点都属于struct stu类型,其成员next存放下一结点的地址。 1.链表概述 7.1 结构类型 7.1.5 用指针处理链表 2.建立与输出链表 在定义结构类型时,系统并未实际分配存储空间。为能让链表在需要
您可能关注的文档
最近下载
- 国家开放大学《建设法规》形考任务1-4答案(国开电大).docx
- 2020年系统集成项目管理工程师考试下午真题及答案.pdf VIP
- 基于LTE基站功放的模拟预失真器的研究与设计-电磁场与微波技术专业论文.docx VIP
- 儿科应急处置情况报告.docx VIP
- 无废单位培训.pptx
- 优选汽车维修工高级技师题库真题题库【突破训练】.docx VIP
- DL_T 5220-2021 10kV及以下架空配电线路设计规范(附条文说明).docx VIP
- 马工程教育学原理期末练习题(答案版).docx VIP
- 足球比赛记录表(标准版).doc VIP
- 餐饮企业税务筹划问题研究——以海底捞为例.docx
文档评论(0)