1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 DOUG LLOYD: Jadi jika anda telah melihat video kami pada struktur, 3 00:00:07,220 --> 00:00:10,950 anda sudah tahu bahawa kita mempunyai keupayaan untuk menentukan jenis data kita sendiri. 4 00:00:10,950 --> 00:00:14,530 Tetapi jika anda telah struktur yang digunakan, anda tahu yang kadang-kadang menggunakan orang-orang jenis data 5 00:00:14,530 --> 00:00:16,446 sebenarnya boleh menjadi sedikit rumit kerana kita 6 00:00:16,446 --> 00:00:19,210 perlu menggunakan kata kunci struct apabila kita bekerja dengan mereka, kelak 7 00:00:19,210 --> 00:00:21,257 kereta struct atau pelajar struct. 8 00:00:21,257 --> 00:00:23,090 Itu banyak menaip jika kita hanya mahu mempunyai 9 00:00:23,090 --> 00:00:24,830 sesuatu yang mudah, seperti struktur. 10 00:00:24,830 --> 00:00:26,390 Kami mahu ada-- kita mahu dapat bekerja dengan perkara-perkara 11 00:00:26,390 --> 00:00:29,350 cara yang sedikit lebih trengkas, seperti int atau char, sesuatu yang banyak 12 00:00:29,350 --> 00:00:31,240 lebih mudah untuk menaip. 13 00:00:31,240 --> 00:00:33,100 >> Mujurlah, terdapat satu cara untuk melakukan ini dalam C, 14 00:00:33,100 --> 00:00:37,150 dengan sesuatu yang dinamakan typedef, yang cara untuk mewujudkan trengkas atau ditulis semula 15 00:00:37,150 --> 00:00:38,640 nama-nama untuk jenis data. 16 00:00:38,640 --> 00:00:40,720 Anda boleh menulis semula data jenis yang sudah wujud, 17 00:00:40,720 --> 00:00:43,970 atau anda boleh menulis jenis data anda sendiri. 18 00:00:43,970 --> 00:00:46,890 >> Perkara pertama yang anda lakukan adalah anda menentukan jenis yang dengan cara biasa, 19 00:00:46,890 --> 00:00:52,271 dan kemudian anda hanya alias kepada sesuatu else-- typedef nama lama nama baru. 20 00:00:52,271 --> 00:00:53,520 Cukup mudah, bukan? 21 00:00:53,520 --> 00:00:56,240 Jadi kita boleh typedef sebagai contoh, data yang telah sedia ada 22 00:00:56,240 --> 00:01:00,266 jenis char tidak ditandatangani sebagai bait. 23 00:01:00,266 --> 00:01:03,140 Dan kemudian, mulai sekarang, selepas kami telah membuat jenis ini definition-- lagi, 24 00:01:03,140 --> 00:01:07,570 yang biasanya akan berada di bahagian atas dot C fail kami, atau dalam H fail dot 25 00:01:07,570 --> 00:01:10,590 secara berasingan, kita boleh hanya menggunakan menggigit di mana-mana 26 00:01:10,590 --> 00:01:12,180 kita akan menggunakan char tidak ditandatangani. 27 00:01:12,180 --> 00:01:14,300 Itulah banyak yang lebih pendek untuk menaip. 28 00:01:14,300 --> 00:01:19,280 >> Di perpustakaan CS50, kami this-- kita typedef bintang char sebagai tali. 29 00:01:19,280 --> 00:01:21,400 Kerana kita disarikan jauh idea petunjuk. 30 00:01:21,400 --> 00:01:25,072 Dan hakikat bahawa rentetan adalah benar-benar penunjuk kepada character-- pertama 31 00:01:25,072 --> 00:01:26,780 pelbagai watak, kerana ia hanya 32 00:01:26,780 --> 00:01:29,863 begitu mengelirukan untuk mendapatkan kepala anda sekitar bahawa- tetapi sebenarnya itulah yang kita lakukan. 33 00:01:29,863 --> 00:01:35,140 Dan garis ini kod benar-benar wujud dalam CS50 dot H typedef char rentetan bintang, 34 00:01:35,140 --> 00:01:39,021 hanya untuk membuat yang sedikit kurang rumit untuk perlu berurusan dengan. 35 00:01:39,021 --> 00:01:41,520 Sudah anda lihat mungkin satu sedikit daripada nilai sini, 36 00:01:41,520 --> 00:01:44,160 tetapi typedef menjadi besar apabila digabungkan dengan struktur, 37 00:01:44,160 --> 00:01:45,780 seperti yang saya katakan sebelum ini. 38 00:01:45,780 --> 00:01:48,550 Struktur mempunyai nama jenis dua perkataan. 39 00:01:48,550 --> 00:01:52,020 Dan supaya mereka boleh menjadi benar-benar menjengkelkan untuk mewujudkan pemboleh ubah jenis itu, 40 00:01:52,020 --> 00:01:56,310 atau [didengar] sesuatu struct, anda baris hanya boleh mendapatkan benar-benar, benar-benar panjang. 41 00:01:56,310 --> 00:01:59,400 Dan supaya anda boleh menggunakan typedef datang dengan sesuatu yang banyak yang lebih pendek. 42 00:01:59,400 --> 00:02:04,650 >> Jadi, jika saya menentukan kereta seperti berikut, saya mempunyai definisi saya sebuah kereta struct car--, 43 00:02:04,650 --> 00:02:07,230 dan kemudian membuka pendakap kerinting, semua bidang struktur saya, 44 00:02:07,230 --> 00:02:11,030 kerinting rapat, separuh colon-- setelah saya ditakrifkan jenis data saya, 45 00:02:11,030 --> 00:02:15,680 Saya boleh typedef struct kereta sebagai garis bawah kereta t. 46 00:02:15,680 --> 00:02:19,670 Dan kemudian apabila saya telah melakukan itu, kini setiap struct kali saya akan digunakan selain 47 00:02:19,670 --> 00:02:22,680 kereta, saya hanya boleh menggunakan kereta garis bawah t. 48 00:02:22,680 --> 00:02:26,480 Itulah banyak yang lebih pendek daripada satu cara untuk meluahkan idea ini struktur ini 49 00:02:26,480 --> 00:02:28,530 yang saya buat. 50 00:02:28,530 --> 00:02:33,620 >> Sebagai alternatif, kerana struktur begitu biasa digunakan dalam typedef, 51 00:02:33,620 --> 00:02:37,980 ada a-- anda sebenarnya boleh menentukan menaip antara permulaan dan akhir. 52 00:02:37,980 --> 00:02:42,020 Jadi struktur typedef sekali lagi adalah biasanya typedef, nama lama, nama baru, 53 00:02:42,020 --> 00:02:45,360 di mana nama-nama yang sudah jenis yang anda telah buat. 54 00:02:45,360 --> 00:02:49,620 Tetapi anda sebenarnya boleh menentukan struktur yang betul-betul di tengah-tengah typedef yang 55 00:02:49,620 --> 00:02:51,760 daripada harus menentukan secara berasingan, dan kemudian 56 00:02:51,760 --> 00:02:52,990 melakukan typedef daripadanya. 57 00:02:52,990 --> 00:02:55,780 Dan yang akan kelihatan seperti this-- typedef kereta struct, 58 00:02:55,780 --> 00:02:59,957 kerinting terbuka, semua bidang anda definisi, kerinting dekat, kereta t. 59 00:02:59,957 --> 00:03:03,290 Jadi nama lama adalah semua barangan itu di merah, anda hanya menentukan struktur 60 00:03:03,290 --> 00:03:05,610 dan menamakan ia pada masa yang sama. 61 00:03:05,610 --> 00:03:07,790 Dan kemudian nama baru adalah garis bawah kereta t. 62 00:03:07,790 --> 00:03:10,150 Dan jadi jika kita mula menggunakan ini dalam kod, sebelum ini saya 63 00:03:10,150 --> 00:03:13,279 mungkin berkata, struct mycar kereta koma bertitik. 64 00:03:13,279 --> 00:03:14,820 Well, saya tidak perlu berbuat demikian lagi. 65 00:03:14,820 --> 00:03:20,265 Sekarang saya telah menggunakan typedef, saya hanya boleh berkata garis bawah kereta t, mycar. 66 00:03:20,265 --> 00:03:22,640 Itulah banyak yang lebih pendek dari jalan yang untuk melakukannya, dan sebenarnya, ia 67 00:03:22,640 --> 00:03:24,515 akan menjadi lebih banyak mudah, terutama 68 00:03:24,515 --> 00:03:27,730 anda mula menggunakan struktur banyak lagi dalam kod anda. 69 00:03:27,730 --> 00:03:28,810 >> Saya Doug Lloyd. 70 00:03:28,810 --> 00:03:30,640 Ini adalah CS50. 71 00:03:30,640 --> 00:03:32,415