C语言(7)------使用typedef自定义数据类型

来源:互联网 发布:百度网盘搜索源码 编辑:程序博客网 时间:2024/05/18 00:00

一 typedef自定义数据类型

typedef的作用是为数据类型起一个新名字。由3个部分组成,分别为关键字typedef,原数据类型,新数据类型。

标准格式如下:

typedef   原数据类型   新数据类型

一旦定义,其之后的程序中可以使用newType替换掉oldType。

eg:

#include "stdio.h"int main(void) {/* typedef 原数据类型 新数据类型*/typedef char myChar;/* 给字符类型起一个别名 */myChar c1 = 'c';/* 使用自定义的数据类型(新数据类型)*/printf("c1 = %c\n", c1);/* printf输出函数输出 */        return 0;}
运行结果:


以上语句的含义是给char取一个别名myChar,之后使用myChar代替char定义字符变量c1,c1就是字符类型。

对于数据类型的别名定义typedef可以再次定义,也是说对别名再去别名。

eg:

#include "stdio.h"int main(void) {/* typedef 原数据类型 新数据类型*/typedef char myChar1;/* 给字符类型起一个别名myChar1 */typedef myChar1 myChar2;/* 给别名再起一个别名myChar2 */myChar2 c2 = 'c';/* 使用自定义的数据类型(新数据类型)*/printf("c2 = %c\n", c2);/* printf输出函数输出 */        return 0;}
运行结果:

第一个别名为myChar1, 第二个别名为myChar2,程序中可以使用myChar1 或 myChar2替换掉char。

二 typedef用途分析

2.1  简化复杂的类型声明

可以使用typedef将一个长长的变量名用一个简短的变量名表示。

例如, typedef unsigned long int  LIU_t;

2.2 提高维护性和移植性

针对数据类型发生变化的情况,使用别名声明数据类型是最佳选择。

eg:

比如,一个学生的成绩,一开始或许都用整数表示,而后来要求有小数,我们需要满篇改类型。

#include "stdio.h"int main(void) {/* 定义4个整型变量,都是同一类型*/int math;int engl;int english;int score_emp;/* 如果哪一天让你将这四个变量变成浮点型,我们只能一个一个修改*/float math;float engl;float english;int score_emp;        return 0;}
在上面程序中,修改前为int, 修改后为float,需要都修改,如果我们换成别名表示,能够减轻维护的工作量。

eg:

#include "stdio.h"int main(void) {typedef int score_t;/* 使用别名类型定义4个整型变量,都是同一类型*/score_t math;score_t engl;score_t english;score_t score_emp;        return 0;}
采用这种程序设计方式,使用别名定义数据类型,一旦需要把int修改为float,我们只需要在

自定义数据类型的地方修改为float即可,不用像第一种方法,需要每个都去指定数据类型。

2.3 数据类型集的定义

常见数据类型集:

#include "stdio.h"int main(void) {typedef char int8_t; typedef short int16_t;typedef int int32_t;typedef long long int64_t;typedef unsigned char uInt8_t;typedef unsigned  short uInt16_t;typde undigned short uInt16_t;        return 0;}

关于typedef的总结:

(1)typedef给数据类型起别名,可以一次或多次定义别名。

(2)常用于简化复杂类型,提高可维护性和可一移植性。

0 0