永发信息网

typedef怎么用

答案:3  悬赏:0  手机版
解决时间 2021-03-19 17:44
  • 提问者网友:酱爆肉
  • 2021-03-19 07:58
typedef怎么用
最佳答案
  • 五星知识达人网友:低血压的长颈鹿
  • 2021-03-19 08:57
类型起个其它的名字,如:

typedef int a;
a b;

//那么b就是int型的。
全部回答
  • 1楼网友:愁杀梦里人
  • 2021-03-19 11:21

typedef是用来声明数据的自定义类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字。

例如:

typedef int integer

那么:

int a;

integer a;

这二者就等价。

  • 2楼网友:荒野風
  • 2021-03-19 09:53
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不是对象名而是类型名。也就是定义了一个类型别名bitnode,实际上指的就是struct node这个完整类型。 typedef定义的类型别名在作用域内和被定义的原类型语义上等价,都是表示同一个类型的名称。这里typedef之后bitnode可以和struct node互相代替(注意在C++中,如果同一命名空间内类型名和对象名没有重复,那么struct可以省略,struct node等价于node)。 更复杂一点的: struct node{ datatype data; struct node *lchild,*rchild; }bintnode, *bintree; 注意定义对象时*修饰对象本身而不是修饰类型。因此这里定义了struct node对象bintnode和struct node*类型的对象bintree。 对应的类型定义: struct node{ datatype data; struct node *lchild,*rchild; }bintnode, *bintree; 这里定义了类型别名bintnode表示完整类型struct node,以及bintree表示类型struct node*。 拆开来就成了 typedef struct node{ datatype data; struct node *lchild,*rchild; }bintnode; typedef bintnode *bintree; 这种写法看起来应该稍微清楚了一点。 至于下面的cirqueue,和上面的bintnode类似,只是这里省略了结构体名称,是一个匿名类型。这样写的主要好处是类型名可以省略struct(C++里面不这样写也可以省略)。 ====
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯