C语⾔中的typedef的⽤法
在以前的学习中对于C语⾔中typedef和define的认识是,#define是宏,作⽤是简单的替换,⽽typedef也是替换,只不过⽐define⾼级的是在替换的时候会进⾏语法检查。但是后来见到了typedef⼀些奇怪的⽤法,⽐如typedef char ARR[10]这⼀类的⽤法,这时候⼀些⼈就会变成表情包了。
究其原因是对typedef⽤法的错误理解。typedef不是⽤来替换的,⽽是对⼀个数据的名字进⾏别名的,也就是重新起⼀个名字,⼈还是同⼀个⼈。假如把结构体拉出来会有助于理解。
typedef struct
{
int a;
char * b;
}struct_new;
结构体就相当于int之类的数据类型,只不过结构体是你⾃⼰定义的类型,int是c语⾔标准⾥规定的基本数据类型。这时候,
struct_new c;就定义了⼀个具有struct_new结构的变量c。那么struct_new就是刚才定义的结构体的别名,它出现的地⽅就相当于把结构体再写⼀遍。
那么这时候看看typedef char ARR[10]这句,这句话的意思是给有10个char型元素的数组进⾏别名,ARR就是别名,注意这时候别名不是在语句结尾了。定义变量时,ARR arr就等同于char arr[10].define的基本用法
其实数组跟结构体⼀样也是由基本数据类型组成的⾮基本数据类型。
仅供参考,有错误的地⽅请指正,但是不接受批评~批评不接受
转载请注明出处。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。