1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 道格·劳埃德:所以如果你 看到的结构我们的视频, 3 00:00:07,220 --> 00:00:10,950 你已经知道,我们有 定义我们自己的数据类型的能力。 4 00:00:10,950 --> 00:00:14,530 但是,如果你使用的结构,你知道 有时使用这些数据类型 5 00:00:14,530 --> 00:00:16,446 实际上一点 麻烦,因为我们 6 00:00:16,446 --> 00:00:19,210 必须使用struct关键字 当我们正在与them-- 7 00:00:19,210 --> 00:00:21,257 汽车结构或结构的学生。 8 00:00:21,257 --> 00:00:23,090 这是很多输入 如果我们只是想有 9 00:00:23,090 --> 00:00:24,830 简单的东西,就像一个结构。 10 00:00:24,830 --> 00:00:26,390 我们希望have--我们要 能够与工作的事情 11 00:00:26,390 --> 00:00:29,350 多一些速记的方式, 如int或字符,某事 12 00:00:29,350 --> 00:00:31,240 更方便地输入。 13 00:00:31,240 --> 00:00:33,100 >> 幸运的是, 一个办法做到这一点在C, 14 00:00:33,100 --> 00:00:37,150 利用所谓的typedef,这是 一种方法来创建简写或改写 15 00:00:37,150 --> 00:00:38,640 名数据类型。 16 00:00:38,640 --> 00:00:40,720 你可以重写数据 已经存在的类型, 17 00:00:40,720 --> 00:00:43,970 或者你可以写你自己的数据类型。 18 00:00:43,970 --> 00:00:46,890 >> 你要做的第一件事就是你 以正常的方式定义一个类型, 19 00:00:46,890 --> 00:00:52,271 然后你只需将其别名的东西 else--的typedef旧名新名称。 20 00:00:52,271 --> 00:00:53,520 很简单,对不对? 21 00:00:53,520 --> 00:00:56,240 因此,我们可以的typedef例如, 已经存在的数据 22 00:00:56,240 --> 00:01:00,266 unsigned char类型的字节。 23 00:01:00,266 --> 00:01:03,140 然后,从现在开始,以后我们已经 再次进行这种类型的definition--, 24 00:01:03,140 --> 00:01:07,570 这通常将是在顶部 我们点的C文件,或在一个点.h文件 25 00:01:07,570 --> 00:01:10,590 另外,我们可以只 使用咬牙到处 26 00:01:10,590 --> 00:01:12,180 我们会用unsigned char型。 27 00:01:12,180 --> 00:01:14,300 这是一个很多更短的输入。 28 00:01:14,300 --> 00:01:19,280 >> 在CS50的图书馆,我们做this-- 我们的typedef的char明星作为字符串。 29 00:01:19,280 --> 00:01:21,400 因为我们抽象 指针离开的想法。 30 00:01:21,400 --> 00:01:25,072 而事实上,一个字符串是真的 一个指向第一character-- 31 00:01:25,072 --> 00:01:26,780 字符数组, 因为它只是 32 00:01:26,780 --> 00:01:29,863 如此混乱围绕让你的头 that--但实际上这就是我们要做的。 33 00:01:29,863 --> 00:01:35,140 而这行代码确实存在 在CS50点^ h的typedef的char明星串, 34 00:01:35,140 --> 00:01:39,021 只是为了让那个少一点 麻烦要处理。 35 00:01:39,021 --> 00:01:41,520 已经你见过可能是 价值点点这里, 36 00:01:41,520 --> 00:01:44,160 但类型定义变大 当与结构结合起来, 37 00:01:44,160 --> 00:01:45,780 正如我前面提到。 38 00:01:45,780 --> 00:01:48,550 结构有两个词的类型名称。 39 00:01:48,550 --> 00:01:52,020 因此,他们可真烦人 创建该类型的变量, 40 00:01:52,020 --> 00:01:56,310 的结构的东西或[听不清],您的 线可以只拿到好长好长。 41 00:01:56,310 --> 00:01:59,400 所以你可以使用typedef来 与一些短了很多。 42 00:01:59,400 --> 00:02:04,650 >> 所以,如果我定义了一个汽车如下,我有 我的定义中car--结构车, 43 00:02:04,650 --> 00:02:07,230 然后打开大括号,所有 我的结构的字段, 44 00:02:07,230 --> 00:02:11,030 接近大括号,半colon-- 我定义我的数据的类型后, 45 00:02:11,030 --> 00:02:15,680 我可以typedef结构 汽车作为汽车下划线吨。 46 00:02:15,680 --> 00:02:19,670 然后当我做到了这一点,现在每 一次,我会以其它方式使用结构 47 00:02:19,670 --> 00:02:22,680 车,我就可以使用汽车下划线吨。 48 00:02:22,680 --> 00:02:26,480 这是一个很大的一种方式,以更短 表达这种想法这种结构 49 00:02:26,480 --> 00:02:28,530 我刚刚创建。 50 00:02:28,530 --> 00:02:33,620 >> 另外,由于结构 如此常用的类型定义使用, 51 00:02:33,620 --> 00:02:37,980 有A--实际上你可以定义 的开始和结束之间键入。 52 00:02:37,980 --> 00:02:42,020 所以typedef的结构又是 通常的typedef,旧名称,新名称, 53 00:02:42,020 --> 00:02:45,360 其中姓名是已经 您创建的类型。 54 00:02:45,360 --> 00:02:49,620 但实际上你可以定义一个结构 就在类型定义的中间 55 00:02:49,620 --> 00:02:51,760 而不必限定 它单独,然后 56 00:02:51,760 --> 00:02:52,990 做它的类型定义。 57 00:02:52,990 --> 00:02:55,780 这看起来就像 this-- typedef结构的汽车, 58 00:02:55,780 --> 00:02:59,957 大括号,你的所有领域 定义,接近大括号,汽车吨。 59 00:02:59,957 --> 00:03:03,290 因此,旧名称是所有的东西在 红色,你只是定义结构 60 00:03:03,290 --> 00:03:05,610 并将其命名为在同一时间。 61 00:03:05,610 --> 00:03:07,790 然后将新的名称 现车下划线吨。 62 00:03:07,790 --> 00:03:10,150 所以,如果我们开始使用 在代码中,以前我 63 00:03:10,150 --> 00:03:13,279 可以说,结构 车mycar分号。 64 00:03:13,279 --> 00:03:14,820 好吧,我就不必再这样了。 65 00:03:14,820 --> 00:03:20,265 现在,我已经使用的typedef,我 只能说汽车下划线T,mycar。 66 00:03:20,265 --> 00:03:22,640 这是一个很大的一种方式更短 做到这一点,而实际上,这是 67 00:03:22,640 --> 00:03:24,515 要多很多 方便,特别是 68 00:03:24,515 --> 00:03:27,730 当你开始使用结构 很多在你的代码了。 69 00:03:27,730 --> 00:03:28,810 >> 我是道格·劳埃德。 70 00:03:28,810 --> 00:03:30,640 这是CS50。 71 00:03:30,640 --> 00:03:32,415