typedef的用法

typedef的语法规则其实很简单,一句话来说就是定义对象的语法前加关键字typedef,剩下的不变,原本定义的对象标识符换成类型标识符,
对应语义从定义一个对象改成定义一个类型别名。typedef看起来复杂根本原因是对象定义的语法比较复杂,例如分隔符*和[]的用法。

typedef的语法规则:

其实很简单,一句话来说就是
定义对象的语法前加关键字typedef,

剩下的不变,原本定义的对象标识符换成类型标识符,

对应语义从定义一个对象改成定义一个类型别名

typedef看起来很复杂的原因是对象定义的语法比较复杂,

例如* 和 [] 的使用

类型别名的定义:

typedef struct node{
              datatype data;
              
               struct node*  lchild, * rchild;
                  
 } bintnode;

对应对象的定义:

struct node{
              datatype data;
              
               struct node*  lchild, * rchild;
                  
 } bintnode;

上代码中,去掉bintnode就是一个类型struct node的完整描述,加上bintnode来看,表示定义了一个struct node类型的对象bintnode。


前面加上typedef,则bintnode不再是对象名,而是类型名,即定义了一个类型别名bintnode,实际指的就是struct node这个完整的类型

typedef定义的类型名在作用域和定义的原类型语义上等价,都便是同一个类型名称。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值