1 00:00:00,000 --> 00:00:04,970 2 00:00:04,970 --> 00:00:07,220 Doug LLOYD: Jadi jika Anda sudah melihat video kami pada struktur, 3 00:00:07,220 --> 00:00:10,950 Anda sudah tahu bahwa kita memiliki kemampuan untuk menentukan tipe data kita sendiri. 4 00:00:10,950 --> 00:00:14,530 Tapi jika Anda sudah struktur digunakan, Anda tahu bahwa kadang-kadang menggunakan jenis-jenis data yang 5 00:00:14,530 --> 00:00:16,446 benar-benar dapat menjadi sedikit rumit karena kita 6 00:00:16,446 --> 00:00:19,210 harus menggunakan kata kunci struct ketika kita sedang bekerja dengan them-- 7 00:00:19,210 --> 00:00:21,257 struct mobil atau struct mahasiswa. 8 00:00:21,257 --> 00:00:23,090 Itu banyak untuk mengetik jika kita hanya ingin memiliki 9 00:00:23,090 --> 00:00:24,830 sesuatu yang sederhana, seperti struktur. 10 00:00:24,830 --> 00:00:26,390 Kami ingin have-- kita ingin dapat bekerja dengan hal-hal 11 00:00:26,390 --> 00:00:29,350 cara yang lebih singkat sedikit, seperti int atau char, sesuatu yang jauh 12 00:00:29,350 --> 00:00:31,240 lebih nyaman untuk mengetik. 13 00:00:31,240 --> 00:00:33,100 >> Untungnya, ada cara untuk melakukan hal ini di C, 14 00:00:33,100 --> 00:00:37,150 dengan sesuatu yang disebut typedef, yang cara untuk membuat singkatan atau ditulis ulang 15 00:00:37,150 --> 00:00:38,640 nama untuk jenis data. 16 00:00:38,640 --> 00:00:40,720 Anda dapat menulis ulang data yang jenis yang sudah ada, 17 00:00:40,720 --> 00:00:43,970 atau Anda dapat menulis jenis data Anda sendiri. 18 00:00:43,970 --> 00:00:46,890 >> Hal pertama yang Anda lakukan adalah Anda menentukan tipe dengan cara biasa, 19 00:00:46,890 --> 00:00:52,271 dan kemudian Anda hanya alias untuk sesuatu else-- typedef nama lama nama baru. 20 00:00:52,271 --> 00:00:53,520 Cukup sederhana, bukan? 21 00:00:53,520 --> 00:00:56,240 Jadi kita bisa typedef misalnya, data yang sudah ada 22 00:00:56,240 --> 00:01:00,266 jenis unsigned char sebagai byte. 23 00:01:00,266 --> 00:01:03,140 Dan kemudian, dari sekarang, setelah kami sudah membuat jenis ini definition-- lagi, 24 00:01:03,140 --> 00:01:07,570 yang biasanya akan berada di atas dot C file-file kita, atau dalam file H dot 25 00:01:07,570 --> 00:01:10,590 secara terpisah, kita bisa hanya menggunakan menggigit di mana-mana 26 00:01:10,590 --> 00:01:12,180 kita akan menggunakan unsigned char. 27 00:01:12,180 --> 00:01:14,300 Itu jauh lebih pendek untuk mengetik. 28 00:01:14,300 --> 00:01:19,280 >> Di perpustakaan CS50, kita lakukan this-- kami typedef bintang arang sebagai string. 29 00:01:19,280 --> 00:01:21,400 Karena kita disarikan pergi ide pointer. 30 00:01:21,400 --> 00:01:25,072 Dan fakta bahwa string adalah benar-benar pointer ke character-- pertama 31 00:01:25,072 --> 00:01:26,780 array karakter, karena itu hanya 32 00:01:26,780 --> 00:01:29,863 sehingga membingungkan untuk mendapatkan kepala Anda sekitar itu-- tetapi sebenarnya itulah yang kami lakukan. 33 00:01:29,863 --> 00:01:35,140 Dan baris kode ini benar-benar ada di CS50 dot H typedef Char String bintang, 34 00:01:35,140 --> 00:01:39,021 hanya untuk membuat yang sedikit kurang rumit untuk harus berurusan dengan. 35 00:01:39,021 --> 00:01:41,520 Anda sudah pernah melihat mungkin sedikit dari nilai sini, 36 00:01:41,520 --> 00:01:44,160 tapi typedef menjadi besar bila dikombinasikan dengan struktur, 37 00:01:44,160 --> 00:01:45,780 seperti yang saya singgung sebelumnya. 38 00:01:45,780 --> 00:01:48,550 Struktur memiliki dua kata nama jenis. 39 00:01:48,550 --> 00:01:52,020 Dan sehingga mereka dapat benar-benar menjengkelkan untuk membuat variabel dari tipe tersebut, 40 00:01:52,020 --> 00:01:56,310 atau [tidak terdengar] struct sesuatu, Anda baris hanya bisa benar-benar, benar-benar lama. 41 00:01:56,310 --> 00:01:59,400 Dan sehingga Anda dapat menggunakan typedef untuk datang dengan sesuatu yang jauh lebih pendek. 42 00:01:59,400 --> 00:02:04,650 >> Jadi jika saya mendefinisikan mobil sebagai berikut, saya harus definisi saya dari struct mobil car--, 43 00:02:04,650 --> 00:02:07,230 dan kemudian membuka brace keriting, semua bidang struktur saya, 44 00:02:07,230 --> 00:02:11,030 penjepit keriting dekat, semi-colon-- setelah saya didefinisikan tipe data saya, 45 00:02:11,030 --> 00:02:15,680 Saya dapat typedef struct mobil garis bawah mobil t. 46 00:02:15,680 --> 00:02:19,670 Dan kemudian ketika saya sudah melakukan itu, sekarang setiap kali saya akan dinyatakan menggunakan struct 47 00:02:19,670 --> 00:02:22,680 mobil, saya hanya bisa menggunakan mobil garis bawah t. 48 00:02:22,680 --> 00:02:26,480 Itu jauh lebih pendek dari cara untuk mengekspresikan ide ini dari struktur ini 49 00:02:26,480 --> 00:02:28,530 bahwa saya baru saja dibuat. 50 00:02:28,530 --> 00:02:33,620 >> Atau, karena struktur begitu umum digunakan dalam typedef, 51 00:02:33,620 --> 00:02:37,980 ada a-- Anda benar-benar dapat menentukan ketik antara awal dan akhir. 52 00:02:37,980 --> 00:02:42,020 Sehingga struktur typedef 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 telah Anda buat. 54 00:02:45,360 --> 00:02:49,620 Tapi Anda benar-benar dapat menentukan struktur tepat di tengah-tengah typedef 55 00:02:49,620 --> 00:02:51,760 daripada harus mendefinisikan secara terpisah, dan kemudian 56 00:02:51,760 --> 00:02:52,990 melakukan typedef itu. 57 00:02:52,990 --> 00:02:55,780 Dan itu akan terlihat seperti this-- typedef struct mobil, 58 00:02:55,780 --> 00:02:59,957 penjepit keriting terbuka, semua bidang Anda definisi, dekat penjepit keriting, t mobil. 59 00:02:59,957 --> 00:03:03,290 Jadi nama lama adalah semua hal yang di merah, Anda hanya mendefinisikan struktur 60 00:03:03,290 --> 00:03:05,610 dan penamaan itu pada waktu yang sama. 61 00:03:05,610 --> 00:03:07,790 Dan kemudian nama baru adalah garis bawah mobil t. 62 00:03:07,790 --> 00:03:10,150 Dan jika kita mulai menggunakan ini dalam kode, sebelumnya saya 63 00:03:10,150 --> 00:03:13,279 mungkin mengatakan, struct mobil mycar semi-colon. 64 00:03:13,279 --> 00:03:14,820 Yah aku tidak perlu melakukan itu lagi. 65 00:03:14,820 --> 00:03:20,265 Sekarang bahwa saya telah digunakan typedef, saya hanya bisa mengatakan t garis bawah mobil, mycar. 66 00:03:20,265 --> 00:03:22,640 Itu jauh lebih pendek dari cara untuk melakukannya, dan pada kenyataannya, itu 67 00:03:22,640 --> 00:03:24,515 akan menjadi lebih banyak nyaman, terutama 68 00:03:24,515 --> 00:03:27,730 Anda mulai menggunakan struktur lebih banyak dalam kode Anda. 69 00:03:27,730 --> 00:03:28,810 >> Aku Doug Lloyd. 70 00:03:28,810 --> 00:03:30,640 Ini adalah CS50. 71 00:03:30,640 --> 00:03:32,415