typedef自定义数据类型
一 typedef自定义数据类型
typedef的作用是为数据类型起一个新名字。由3个部分组成,分别为关键字typedef,原数据类型,新数据类型。
标准格式如下:
typedef 原数据类型 新数据类型
一旦定义,其之后的程序中可以使用newType替换掉oldType。
eg:
#include "stdio.h"
int main(void) {
/* typedef 原数据类型 新数据类型*/
typedef char myChar;/* 给字符类型起一个别名 */
myChar c1 = "c";/* 使用自定义的数据类型(新数据类型)*/
printf("c1 = %c
", 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
", 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)常用于简化复杂类型,提高可维护性和可一移植性。
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
