栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言之使用typedef给数据类型换个名儿

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言之使用typedef给数据类型换个名儿

typedef关键字

除了可以直接使用C语言提供给我们的数据类型名(如int,char,float,double等)和我们自己定义的结构体类型名以外,还可以使用typedef指定新的数据类型名来代替已有的类型名。换句话说,typedef的作用就是对已有的数据类型起别名。例如:

#include 

typedef int Integer; // 给int取了个别名叫Integer,下面就可以用Integer来定义整形变量
typedef char * String; // 给char *取了个别名叫String,下面就可以用String来定义字符型指针变量

int main()
{
	Integer i = 10; // 等同于 int i = 10;
	String p; // 等同于 char * p;

	return 0;
}
#include 

typedef struct Student
{
	char name[100];
	int age;
	float score;
}ST, * PST; // 给 struct Student 起了个别名ST,给 struct Student * 起了个别名叫PST

int main()
{
	ST stu;		// 等同于 struct Student stu;
	PST pStu;	// 等同于 ST * pStu; 也等同于 struct Student * pStu;

	return 0;
}

需要注意的是,C语言中允许原结构体名与使用typedef重新命名的结构体名相同,例如:

#include 

typedef struct Student
{
	char name[100];
	int age;
	float score;
}Student; // 此时的 Student 就等同于 struct Student

int main()
{
	Student stu;	// 等同于 struct Student stu;
	
	return 0;
}
  • 为什么要给数据类型重新命名?
  • 首先是为了方便程序员编程,例如当我们定义结构体变量时,如果总是要先写struct再写结构体名的话,定义结构体变量就变得十分繁琐,每次都要写一遍struct,而且写代码时很容易忘记写它,而且这样代码也会显得比较累赘,如果我们可以用很短的几个字母来表示一个很长的结构体名,那我们何乐而不为呢?
  • 其次是为整个程序的通用性,如果一个程序最初的存储数据的变量都是整型,在程序中自然定义的都是整型变量,但如果某个时候想要把所有所有定义的数据变量都改为浮点型,工作量可想而知,但是有typedef来帮忙,只需要一步就可以搞定。由于我们最开始要存储的是整型数据,那我们可以将int先重新命名为ElemType(当然名字可以随便取,这里取为ElemType只是方便在数据结构中使用),即,typedef int ElemType;,当我们想把这些数据对应的变量改为浮点型时,我们只需要做这样的操作即可typedef float ElemType;,相较一个一个去修改变量的类型而言,使用typedef真的很省事!
  • 再有,为了在编程时达到代码即注释的目的,厉害的程序员往往会对数据类型重新命名。
  • 如果不是很理解为什么要这样的话,可以先在脑海里留个印象,需要用到这部分内容时再回来仔细分析一番,大家可以多敲多看,其实在编程过程中就会逐渐明白这样做的好处。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1012494.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号