1 00:00:04,970 --> 00:00:07,960 DOGS LOIDS: Tātad, ja esat redzējis mūsu video par struktūrām, jūs 2 00:00:07,960 --> 00:00:10,950 jau zināt, ka mums ir iespēja definēt savus datu tipus. 3 00:00:10,950 --> 00:00:13,526 Bet, ja esat izmantojis struktūras, jūs zināt, ka dažkārt šo datu 4 00:00:13,526 --> 00:00:16,103 tipu izmantošana var būt nedaudz apgrūtinoša, jo mums, strādājot ar 5 00:00:16,103 --> 00:00:18,680 tiem, ir jāizmanto atslēgvārds struct — struct car vai struct 6 00:00:18,680 --> 00:00:21,257 student. 7 00:00:21,257 --> 00:00:23,043 Ir jāievada daudz informācijas, ja mēs vienkārši vēlamies iegūt kaut 8 00:00:23,043 --> 00:00:24,830 ko vienkāršu, piemēram, struktūru. 9 00:00:24,830 --> 00:00:26,966 Mēs vēlamies, lai būtu — mēs vēlamies, lai varētu strādāt ar lietām 10 00:00:26,966 --> 00:00:29,103 nedaudz saīsinātā veidā, piemēram, int vai char, ar kaut ko, ko ir 11 00:00:29,103 --> 00:00:31,240 daudz ērtāk uzrakstīt. 12 00:00:31,240 --> 00:00:33,706 Par laimi, ir veids, kā to izdarīt C valodā, izmantojot to, ko sauc 13 00:00:33,706 --> 00:00:36,173 par typedef, kas ir veids, kā izveidot saīsinātus vai pārrakstītus 14 00:00:36,173 --> 00:00:38,640 datu tipu nosaukumus. 15 00:00:38,640 --> 00:00:41,305 Varat pārrakstīt jau esošos datu tipus vai arī rakstīt savus datu 16 00:00:41,305 --> 00:00:43,970 tipus. 17 00:00:43,970 --> 00:00:48,120 Vispirms jūs definējat tipuparastajā veidā un pēc tam vienkārši 18 00:00:48,120 --> 00:00:52,271 aizstājat to ar kaut ko citu — typedef old name new name. 19 00:00:52,271 --> 00:00:53,520 Diezgan vienkārši, vai ne? 20 00:00:53,520 --> 00:00:56,893 Tātad mēs varētu ierakstīt, piemēram, jau esošo datu tipu ar 21 00:00:56,893 --> 00:01:00,266 neparakstītu rakstzīmi kā baitu. 22 00:01:00,266 --> 00:01:03,244 Un turpmāk, kad būsim izveidojuši šī tipa definīciju — atkal, kas 23 00:01:03,244 --> 00:01:06,223 parasti atrodas mūsu punkta C failu augšdaļā vai arī H failā 24 00:01:06,223 --> 00:01:09,201 atsevišķi, mēs varam izmantot baitu visur, kur vien esam izmantojuši 25 00:01:09,201 --> 00:01:12,180 neparakstītu rakstzīmi. 26 00:01:12,180 --> 00:01:14,300 Tas ir daudz īsāks, lai rakstītu. 27 00:01:14,300 --> 00:01:19,280 CS50 bibliotēkā mēs to darām — kā virkni ierakstām char star. 28 00:01:19,280 --> 00:01:21,400 Jo mēs abstrahējām norādes ideju. 29 00:01:21,400 --> 00:01:25,631 Un fakts, ka virkne patiešām ir rādītājs uz pirmo rakstzīmi — 30 00:01:25,631 --> 00:01:29,863 rakstzīmju masīvs, ir tik mulsinoši 31 00:01:29,863 --> 00:01:34,442 Un šī koda rindiņa faktiski pastāv CS50 dot H typedef char star 32 00:01:34,442 --> 00:01:39,021 virknē, lai to padarītu mazāk apgrūtinošu. 33 00:01:39,021 --> 00:01:42,400 Jūs, iespējams, jau esat redzējis mazliet šīs vērtības, taču typedef 34 00:01:42,400 --> 00:01:45,780 kļūst lielisks, ja to apvieno ar struktūrām, kā jau minēju iepriekš. 35 00:01:45,780 --> 00:01:48,550 Struktūrām ir divu vārdu tipa nosaukums. 36 00:01:48,550 --> 00:01:56,310 vai [nedzirdams] of struct kaut kas, jūsu 37 00:01:52,020 --> 00:01:56,310 rindas var kļūt ļoti, ļoti garas. 38 00:01:56,310 --> 00:01:59,400 Un tāpēc jūs varat izmantot typedef, lai izdomātu kaut ko daudz īsāku. 39 00:01:59,400 --> 00:02:03,470 Tātad, ja es definēju car šādi, man ir sava car definīcija — car 40 00:02:03,470 --> 00:02:07,540 struct un pēc tam — atvērt figūiekavu, visi manas struktūras lauki, 41 00:02:07,540 --> 00:02:11,610 aizvērt figūiekavu, semikols — pēc tam, kad esmu definējis savu 42 00:02:11,610 --> 00:02:15,680 datutipu , es varu rakstīt definīciju struct car as car underscore t. 43 00:02:15,680 --> 00:02:19,180 Un tad, kad esmu to izdarījis, tagad katru reizi, kad citādi būtu 44 00:02:19,180 --> 00:02:22,680 izmantojis struct car, es varu vienkārši izmantot car underscore t. 45 00:02:22,680 --> 00:02:25,605 Tas ir daudz īsāks veids, kā izteikt šo ideju par šo manis tikko 46 00:02:25,605 --> 00:02:28,530 izveidoto struktūru. 47 00:02:28,530 --> 00:02:33,255 Alternatīvi, tā kā struktūras ir tik bieži izmantotas typedef, ir 48 00:02:33,255 --> 00:02:37,980 iespēja definēt tipu starp sākumu un beigām. 49 00:02:37,980 --> 00:02:41,670 Tātad typedef struktūra parasti ir typedef, vecais nosaukums, jaunais 50 00:02:41,670 --> 00:02:45,360 nosaukums, kur nosaukumi jau ir jūsu izveidotie tipi. 51 00:02:45,360 --> 00:02:49,175 Bet jūs faktiski varat definēt struktūru tieši typedef vidū, nevis to 52 00:02:49,175 --> 00:02:52,990 definēt atsevišķi, un pēc tam veikt to typedef. 53 00:02:52,990 --> 00:02:55,312 Un tas izskatītos tieši šādi — typedef struct car, atvērt figūriekavu 54 00:02:55,312 --> 00:02:57,634 krokains kronšteins, visas jūsu lauka definīcijas, aizvērt 55 00:02:57,634 --> 00:02:59,957 figūriekavu, car t. 56 00:02:59,957 --> 00:03:02,783 Tātad vecais nosaukums ir sarkanā krāsā, jūs vienkārši definējat 57 00:03:02,783 --> 00:03:05,610 struktūru un vienlaikus nosaucat to. 58 00:03:05,610 --> 00:03:07,790 Un tad jaunais nosaukums ir car underscore t. 59 00:03:07,790 --> 00:03:10,534 Un tāpēc, ja mēs sākam to izmantot kodā, iepriekš es varētu teikt, 60 00:03:10,534 --> 00:03:13,279 struct car mycar.semi-colon. 61 00:03:13,279 --> 00:03:14,820 Nu man tas vairs nav jādara. 62 00:03:14,820 --> 00:03:17,542 Tagad, kad esmu izmantojis typedef, varu vienkārši pateikt car 63 00:03:17,542 --> 00:03:20,265 pasvītrojumu t, mycar. 64 00:03:20,265 --> 00:03:22,753 Tas ir daudz īsāks veids, kā to izdarīt, un patiesībā tas būs daudz 65 00:03:22,753 --> 00:03:25,241 ērtāk, jo īpaši tāpēc, ka kodā sākat izmantot struktūras daudz 66 00:03:25,241 --> 00:03:27,730 vairāk. 67 00:03:27,730 --> 00:03:28,810 Es esmu Dags Loids. 68 00:03:28,810 --> 00:03:33,810 Šis ir CS50.