关于下面的问题,c++ primer 不明白的地方?

书上说:
typedef通常被用于三种目的:
1、为了隐藏特定类型的实现,强调使用类型的目的。
2、简化复杂的类型定义,使其容易理解。
3、允许一种类型用于多个目的,同时使得每次使用该类型的目的明确。
上面这段话怎么理解。能不能举个例子,说明一下。

红糖糍粑
浏览 120回答 2
2回答

米脂

说说我的理解,因为前几天老是看头文件,这个在头文件里出现的次数相当多。typedef的基本作用就是给一个数据类型一个名字,可以用这个名字去定义这样的数据类型。比如 typedef uint unsigned int 就是用uint来表示无符号整数unsigned int,这样的用法在单片机程序里相当典型。这样可以简化书写,另外如果封装库文件的话,就可以隐藏数据类型。在比如定义一个结构 typedef Student struct { char name[10]; int Number;}Student;这样就可以用Student boy1;这样看起来只是简化了书写,和让定义看起来明确一些。可是当你想用一个结构里面还有结构型数据的话,比如已经定义了Student那么在定义一个Teacher :typedef Teacher struct { char name[10]; int Number;}Teacher;那么就可以使用新的结构:struct { Student student; Teacher teacher;} Class;这样你看班级Class里就定义了学生和老师,而且使结构很清晰,很容易理解。至于第三条,最常用就是int的定义了,比如我定义宽和高都是整数,typedef Width int;typedef Heigth int;这样Width a;Heigth b;你一看就知道a,b是干什么的了,都是整型数,但是这么定义一下,你就很明白的知道使用整型数的目的了。

眼眸繁星

AdjMatrix 定义了的是一个二维数组:如 AdjMatrix a; ====== int a[MAX_ VERTEX _ NUM][MAX_ VERTEX _ NUM]而用AdjMatrix[MAX_ VERTEX _ NUM][MAX _ VERTEX _ NUM]去定义时会报错,所以只能用AdjMatrix去定义,而且定义后的是一个二维数组,很特殊,呵呵,这个我以前都不知道
打开App,查看更多内容
随时随地看视频慕课网APP