typedef的用法

来源:互联网 发布:3d软件下载 编辑:程序博客网 时间:2024/05/18 20:10
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定义的类型名在作用域和定义的原类型语义上等价,都便是同一个类型名称。



原创粉丝点击