DOUG LLOYD: Jadi jika anda telah melihat video kami pada struktur,
anda sudah tahu bahawa kita mempunyai keupayaan untuk menentukan jenis data kita sendiri.
Tetapi jika anda telah struktur yang digunakan, anda tahu yang kadang-kadang menggunakan orang-orang jenis data
sebenarnya boleh menjadi sedikit rumit kerana kita
perlu menggunakan kata kunci struct apabila kita bekerja dengan mereka, kelak
kereta struct atau pelajar struct.
Itu banyak menaip jika kita hanya mahu mempunyai
sesuatu yang mudah, seperti struktur.
Kami mahu ada-- kita mahu dapat bekerja dengan perkara-perkara
cara yang sedikit lebih trengkas, seperti int atau char, sesuatu yang banyak
lebih mudah untuk menaip.
>> Mujurlah, terdapat satu cara untuk melakukan ini dalam C,
dengan sesuatu yang dinamakan typedef, yang cara untuk mewujudkan trengkas atau ditulis semula
nama-nama untuk jenis data.
Anda boleh menulis semula data jenis yang sudah wujud,
atau anda boleh menulis jenis data anda sendiri.
>> Perkara pertama yang anda lakukan adalah anda menentukan jenis yang dengan cara biasa,
dan kemudian anda hanya alias kepada sesuatu else-- typedef nama lama nama baru.
Cukup mudah, bukan?
Jadi kita boleh typedef sebagai contoh, data yang telah sedia ada
jenis char tidak ditandatangani sebagai bait.
Dan kemudian, mulai sekarang, selepas kami telah membuat jenis ini definition-- lagi,
yang biasanya akan berada di bahagian atas dot C fail kami, atau dalam H fail dot
secara berasingan, kita boleh hanya menggunakan menggigit di mana-mana
kita akan menggunakan char tidak ditandatangani.
Itulah banyak yang lebih pendek untuk menaip.
>> Di perpustakaan CS50, kami this-- kita typedef bintang char sebagai tali.
Kerana kita disarikan jauh idea petunjuk.
Dan hakikat bahawa rentetan adalah benar-benar penunjuk kepada character-- pertama
pelbagai watak, kerana ia hanya
begitu mengelirukan untuk mendapatkan kepala anda sekitar bahawa- tetapi sebenarnya itulah yang kita lakukan.
Dan garis ini kod benar-benar wujud dalam CS50 dot H typedef char rentetan bintang,
hanya untuk membuat yang sedikit kurang rumit untuk perlu berurusan dengan.
Sudah anda lihat mungkin satu sedikit daripada nilai sini,
tetapi typedef menjadi besar apabila digabungkan dengan struktur,
seperti yang saya katakan sebelum ini.
Struktur mempunyai nama jenis dua perkataan.
Dan supaya mereka boleh menjadi benar-benar menjengkelkan untuk mewujudkan pemboleh ubah jenis itu,
atau [didengar] sesuatu struct, anda baris hanya boleh mendapatkan benar-benar, benar-benar panjang.
Dan supaya anda boleh menggunakan typedef datang dengan sesuatu yang banyak yang lebih pendek.
>> Jadi, jika saya menentukan kereta seperti berikut, saya mempunyai definisi saya sebuah kereta struct car--,
dan kemudian membuka pendakap kerinting, semua bidang struktur saya,
kerinting rapat, separuh colon-- setelah saya ditakrifkan jenis data saya,
Saya boleh typedef struct kereta sebagai garis bawah kereta t.
Dan kemudian apabila saya telah melakukan itu, kini setiap struct kali saya akan digunakan selain
kereta, saya hanya boleh menggunakan kereta garis bawah t.
Itulah banyak yang lebih pendek daripada satu cara untuk meluahkan idea ini struktur ini
yang saya buat.
>> Sebagai alternatif, kerana struktur begitu biasa digunakan dalam typedef,
ada a-- anda sebenarnya boleh menentukan menaip antara permulaan dan akhir.
Jadi struktur typedef sekali lagi adalah biasanya typedef, nama lama, nama baru,
di mana nama-nama yang sudah jenis yang anda telah buat.
Tetapi anda sebenarnya boleh menentukan struktur yang betul-betul di tengah-tengah typedef yang
daripada harus menentukan secara berasingan, dan kemudian
melakukan typedef daripadanya.
Dan yang akan kelihatan seperti this-- typedef kereta struct,
kerinting terbuka, semua bidang anda definisi, kerinting dekat, kereta t.
Jadi nama lama adalah semua barangan itu di merah, anda hanya menentukan struktur
dan menamakan ia pada masa yang sama.
Dan kemudian nama baru adalah garis bawah kereta t.
Dan jadi jika kita mula menggunakan ini dalam kod, sebelum ini saya
mungkin berkata, struct mycar kereta koma bertitik.
Well, saya tidak perlu berbuat demikian lagi.
Sekarang saya telah menggunakan typedef, saya hanya boleh berkata garis bawah kereta t, mycar.
Itulah banyak yang lebih pendek dari jalan yang untuk melakukannya, dan sebenarnya, ia
akan menjadi lebih banyak mudah, terutama
anda mula menggunakan struktur banyak lagi dalam kod anda.
>> Saya Doug Lloyd.
Ini adalah CS50.