关于typedef的一些常用点

今天讲解typedef

C 语言提供了 typedef 关键字,我们可以用它来创建数据类型别名

  • 今天也要冲冲冲!!!

1、使用typedef简化结构体关键字 (struct)
还记得有一次课堂作业曾经那个学生成绩管理系统中

struct student
{
	char name[10]; 
	double yuwen;
	double math;
	double english;
	double sum;
	double average;
};

double y_average,m_average,e_average;

void s_average(struct student s[]);
void sum(struct student s[]);
void meike_average(struct student s[]);
void paixu(struct student s[]);
void paixu(struct student s[]);
int main()
{
	struct student s[100];
	int i,j;
	/*省略以下所有代码*/
}

很明显上图中每次调用时都需要使用struct student s[].???
这样会显得很麻烦,所以我们可以用typedef来简化这个过程
第一种

struct student
{
	char name[10]; 
	double yuwen;
	double math;
	double english;
	double sum;
	double average;
};
typedef struct student  s[1]={“略略略”,12345};//低版本中不支持
因此在后面调用时可以直接使用s
函数体中也可以简化为void s_average(s[]);

为了方便我们通常使用第二种
第二种

typedef struct student
{
	char name[10]; 
	double yuwen;
	double math;
	double english;
	double sum;
	double average;
}s;
所以可以用 s s[100];等价于struct student  s[100]

2.关于数据类型的一些问题

有些时候我们想要规定两个或者以上的int *类型
如果这样 int *p1,p2 就是错误的,因为这个意思是P1属于int *,p2为int
所以正确做法是int *p1,*p2;

这个时候typedef作用便来了
tyepe int * haogege ;
//这样便可以直接
haogege p1,p2;会方便很多

3.可以让代码 移植性提高

void p1()
{
	long long x1;
	long  long  x2;
}
当我们只用 其他编译器打开时候可能不支持long long类型这时候就会很麻烦
所以我们可以
typedef long long haogege; 
void p2()
{
	heogege x1;
	haogege x2;
}
这样当我们需要替换掉所有long long类型的时候
只需要把typedef long long haogege中 long long改掉即可;

未完待续。。。。

发布了21 篇原创文章 · 获赞 31 · 访问量 2506

猜你喜欢

转载自blog.csdn.net/solitudi/article/details/103249389