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,my​​car。 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