1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 Doug LLOYD: Dakle, ako ste vidjeli naše video na strukturama, 3 00:00:07,220 --> 00:00:10,950 vi već znate da imamo Sposobnost definirati vlastite vrste podataka. 4 00:00:10,950 --> 00:00:14,530 Ali, ako ste koristili strukture, znate da ponekad koristi one vrste podataka 5 00:00:14,530 --> 00:00:16,446 zapravo može biti malo težak jer smo 6 00:00:16,446 --> 00:00:19,210 moraju koristiti struct ključnu riječ kada radimo s them-- 7 00:00:19,210 --> 00:00:21,257 struct automobila ili struct student. 8 00:00:21,257 --> 00:00:23,090 To je puno tipkati ako mi samo želimo da 9 00:00:23,090 --> 00:00:24,830 nešto jednostavno, poput strukture. 10 00:00:24,830 --> 00:00:26,390 Želimo have-- želimo biti u mogućnosti da rade sa stvarima 11 00:00:26,390 --> 00:00:29,350 malo više stenogram način, poput int ili char, nešto puno 12 00:00:29,350 --> 00:00:31,240 više prikladan za upisati. 13 00:00:31,240 --> 00:00:33,100 >> Srećom, tu je način to učiniti u C, 14 00:00:33,100 --> 00:00:37,150 s nečim što se zove typedef, koji je način za stvaranje stenogram ili prepisivati 15 00:00:37,150 --> 00:00:38,640 imena za vrste podataka. 16 00:00:38,640 --> 00:00:40,720 Možete prepisati podatke vrste koje već postoje, 17 00:00:40,720 --> 00:00:43,970 ili možete pisati vrste podataka od svoje vlastite. 18 00:00:43,970 --> 00:00:46,890 >> Prva stvar koju trebate učiniti je definirati tip na normalan način, 19 00:00:46,890 --> 00:00:52,271 i onda samo ga alias nešto else-- typedef staro ime novo ime. 20 00:00:52,271 --> 00:00:53,520 Prilično jednostavno, zar ne? 21 00:00:53,520 --> 00:00:56,240 Tako smo mogli typedef primjerice, već postojeći podaci 22 00:00:56,240 --> 00:01:00,266 tip unsigned char kao bajt. 23 00:01:00,266 --> 00:01:03,140 A onda, od sada, nakon što imamo napravio taj tip opet definition--, 24 00:01:03,140 --> 00:01:07,570 koja se obično će biti na vrhu naših točaka C datoteke, ili u dot H datoteke 25 00:01:07,570 --> 00:01:10,590 zasebno, možemo samo koristiti gristi svugdje 26 00:01:10,590 --> 00:01:12,180 mi bi koristili unsigned char. 27 00:01:12,180 --> 00:01:14,300 To je puno kraći upisati. 28 00:01:14,300 --> 00:01:19,280 >> U CS50 knjižnici, mi this-- napraviti smo typedef char zvijezdu kao string. 29 00:01:19,280 --> 00:01:21,400 Budući da smo sažeto daleko ideja upućuje. 30 00:01:21,400 --> 00:01:25,072 A činjenica da je niz stvarno pokazivač na prvi character-- 31 00:01:25,072 --> 00:01:26,780 niz znakova, jer to je samo 32 00:01:26,780 --> 00:01:29,863 tako zbunjujuće dobiti svoju glavu okolo that-- ali u stvari to je ono što mi radimo. 33 00:01:29,863 --> 00:01:35,140 I ova linija koda zapravo postoji u CS50 Dot H typedef char zvjezdice nizu, 34 00:01:35,140 --> 00:01:39,021 samo da bi to malo manje nezgrapan morati baviti. 35 00:01:39,021 --> 00:01:41,520 Već ste vidjeli vjerojatno malo vrijednosti ovdje, 36 00:01:41,520 --> 00:01:44,160 ali typedef postaje super u kombinaciji s strukturama, 37 00:01:44,160 --> 00:01:45,780 kao što sam aludirao na ranije. 38 00:01:45,780 --> 00:01:48,550 Građevine imaju tipa dvije riječi ime. 39 00:01:48,550 --> 00:01:52,020 I tako oni mogu biti vrlo neugodno stvoriti varijable te vrste, 40 00:01:52,020 --> 00:01:56,310 ili [nečujan] od struct nešto, vaš Linije mogu samo dobiti jako, jako dugo. 41 00:01:56,310 --> 00:01:59,400 I tako da možete typedef koristiti doći s nešto puno kraće. 42 00:01:59,400 --> 00:02:04,650 >> Dakle, ako sam definirati automobil na sljedeći, imam moja definicija car-- struct automobila, 43 00:02:04,650 --> 00:02:07,230 a zatim otvorite kovrčavu braće, svi polja moje strukture, 44 00:02:07,230 --> 00:02:11,030 blizu kovrčava braće, polu-colon-- nakon što sam definirati svoju vrstu podataka, 45 00:02:11,030 --> 00:02:15,680 Mogu typedef struct auto kao auto naglašavaju t. 46 00:02:15,680 --> 00:02:19,670 I onda kad sam to učinio, sada svaki Vrijeme bih inače koristi struct 47 00:02:19,670 --> 00:02:22,680 auto, ja mogu samo koristiti automobil donju t. 48 00:02:22,680 --> 00:02:26,480 To je puno kraći od način da se izraziti ideju ove strukture 49 00:02:26,480 --> 00:02:28,530 da sam samo stvorio. 50 00:02:28,530 --> 00:02:33,620 >> Alternativno, jer konstrukcija su tako često koristi u typedef, 51 00:02:33,620 --> 00:02:37,980 postoji A- možete zapravo definirati upišite između početka i kraja. 52 00:02:37,980 --> 00:02:42,020 Dakle typedef struktura je ponovno obično typedef, staro ime, novo ime, 53 00:02:42,020 --> 00:02:45,360 gdje su imena već Vrste koje ste stvorili. 54 00:02:45,360 --> 00:02:49,620 Ali što se zapravo može definirati strukturu pravo u sredini typedef 55 00:02:49,620 --> 00:02:51,760 umjesto da se definira to odvojeno, a zatim 56 00:02:51,760 --> 00:02:52,990 napraviti typedef njega. 57 00:02:52,990 --> 00:02:55,780 A to će izgledati baš kao i this-- typedef struct automobila, 58 00:02:55,780 --> 00:02:59,957 otvoreni kovrčava braće, sve vaše polje definicije, u neposrednoj blizini kovrčave vitice, auto t. 59 00:02:59,957 --> 00:03:03,290 Tako je stari naziv je sve to u crvena, ste samo definiranje strukture 60 00:03:03,290 --> 00:03:05,610 i imenovanja istovremeno. 61 00:03:05,610 --> 00:03:07,790 A onda je novo ime je automobil podcrtavanja t. 62 00:03:07,790 --> 00:03:10,150 I tako, ako ćemo početi koristiti to koda, prethodno sam 63 00:03:10,150 --> 00:03:13,279 možda rekao, struct auto mycar polu-debelog crijeva. 64 00:03:13,279 --> 00:03:14,820 Pa ja ne moram raditi više. 65 00:03:14,820 --> 00:03:20,265 Sada kada sam koristio typedef, ja mogu samo reći automobila donju t, mycar. 66 00:03:20,265 --> 00:03:22,640 To je puno kraći od načina to učiniti, i zapravo, to je 67 00:03:22,640 --> 00:03:24,515 će biti puno više zgodan, pogotovo 68 00:03:24,515 --> 00:03:27,730 kao što počnete koristiti struktura puno više u kodu. 69 00:03:27,730 --> 00:03:28,810 >> Ja sam Doug Lloyd. 70 00:03:28,810 --> 00:03:30,640 Ovo je CS50. 71 00:03:30,640 --> 00:03:32,415