C语言为何要引入自定义类型?
发布网友
发布时间:2022-04-29 00:53
我来回答
共2个回答
热心网友
时间:2022-06-26 21:33
主要还是两种需求吧,一种是程序比较大,用来区分变量的用途的,另一种就是偷懒型的,利用简单的符号替代掉名字长的,这个主要用于结构体。
第一种,基本就是下面这种情况。
int year;这个意思定义了一个名字叫year的int型变量,这样看其实没什么问题对吧。但是如果我的程序有很多变量,怎么办?
int year,month,hour,second,day,i,t,s;这样用起来就会很难受了,int型变量全部写在一起,完全没有分类的话,找变量不好找,然后就是只能通过名字大致来区别这个变量是用来干什么的,程序大了,比较难受。
如果我们定义一个
typedef int years,然后把用于年月日的变量放在一起。
years year,month,hour,second,day;这样就很清楚了,通过变量前面的类型的名字来确定变量的用途,把类似幻数的i,t,s;这种用于for循环的,这种用途的,放在一起,很快都能明确变量的作用,而全部把他们放在最基础的int型变量下,你只知道这个变量是个int,至于用来做什么的,用在哪些函数上,你就不懂了,万一其他地方用了,就比较麻烦了。
第二种用途,就基本上属于懒的范畴了,比如我要用结构体的变量。
一般我们定义结构体都是这样定义的。
struct yearsd{
int l;
char p;
};
当我们用的时候,一般标准用法都是要带上struct的
struct yearsd y;这是定义了一个变量y,y的类型是结构体yearsd。这个貌似看版本和编译器了,有的编译器不带struct也可以。
这样导致你要写的东西太多了,如果程序大,时间紧,一般这样定义,可以节省你打的字。
typedef struct yearsd{ int l; char p;} ye;
那么我定义结构体变量的时候直接用ye,打的字少。。。。
一般是第一种用的多,因为基本类型就只有int,char,float等几个,变量多了,不好区别,用一类具有相同功能的名字去重新设置,比较好找,偷懒型比较少吧。
至于觉得用处不大的原因可能是,初学者一般都只是尝试写一些小程序,量不大,变量不多,这个功能确实就显得鸡肋了。
热心网友
时间:2022-06-26 21:33
区分变量的用途的