DOUG LLOYD: Vì vậy, nếu bạn đã xem video của chúng tôi trên các cấu trúc,
bạn đã biết rằng chúng tôi có các Khả năng định nghĩa kiểu dữ liệu riêng của chúng tôi.
Nhưng nếu bạn có cấu trúc được sử dụng, bạn có biết mà đôi khi sử dụng những loại dữ liệu
thực sự có thể là một chút rườm rà vì chúng tôi
phải sử dụng các từ khóa struct khi chúng tôi đang làm việc với them--
struct xe hoặc struct sinh viên.
Đó là rất nhiều để gõ nếu chúng ta chỉ muốn có
một cái gì đó đơn giản, giống như một cấu trúc.
Chúng tôi muốn have-- chúng ta muốn có thể làm việc với những thứ
một chút cách nhanh hơn, như int hoặc char, một cái gì đó rất nhiều
thuận tiện hơn để loại.
>> May mắn là có một cách để làm điều này trong C,
với một cái gì đó gọi là typedef, đó là một cách để tạo ra cách viết tắt hoặc viết lại
tên cho các kiểu dữ liệu.
Bạn có thể viết lại dữ liệu loại đã tồn tại,
hoặc bạn có thể viết các kiểu dữ liệu của riêng bạn.
>> Điều đầu tiên bạn làm là bạn định nghĩa một kiểu theo cách thông thường,
và sau đó bạn chỉ bí danh nó thành cái gì else-- typedef cũ tên tên mới.
Khá đơn giản, phải không?
Vì vậy, chúng ta có thể typedef ví dụ, các dữ liệu đã tồn tại
loại char unsigned như byte.
Và sau đó, từ bây giờ, sau khi chúng tôi đã làm kiểu này definition-- một lần nữa,
mà thường là có được ở đầu của dot file C của chúng tôi, hoặc trong một tập tin dot H
riêng rẽ, chúng ta có thể chỉ sử dụng ở khắp mọi nơi cắn
chúng tôi đã sử dụng unsigned char.
Đó là ngắn hơn rất nhiều để gõ.
>> Trong thư viện CS50, chúng tôi làm this-- chúng tôi typedef char sao như chuỗi.
Bởi vì chúng ta trừu tượng đi những ý tưởng của con trỏ.
Và thực tế là một chuỗi thực sự là một con trỏ đến character-- đầu tiên
một mảng kí tự, bởi vì nó chỉ là
rất khó hiểu để có được đầu của bạn xung quanh that-- nhưng trong thực tế, đó là những gì chúng tôi làm.
Và dòng mã này thực sự tồn tại trong CS50 dot H typedef char string sao,
chỉ để làm cho rằng một chút ít cồng kềnh để có để đối phó với.
Đã được bạn đã nhìn thấy có thể là một chút chút về giá trị ở đây,
nhưng typedef trở nên tuyệt vời khi kết hợp với cấu trúc,
như tôi đã đề cập đến trước đó.
Cấu trúc có một loại tên hai từ.
Và do đó, họ có thể được thực sự gây phiền nhiễu tạo ra các biến kiểu đó,
hay [không nghe được] của struct một cái gì đó, bạn đường chỉ có thể có được thực sự, thực sự dài.
Và như vậy bạn có thể sử dụng typedef đến với cái gì ngắn hơn rất nhiều.
>> Vì vậy, nếu tôi xác định một chiếc xe như sau, tôi có định nghĩa của tôi về một struct xe car--,
và sau đó mở ngoặc móc, tất cả các lĩnh vực cơ cấu của tôi,
ngoặc móc gần, bán colon-- sau khi tôi đã xác định kiểu dữ liệu của tôi,
Tôi có thể typedef struct xe như xe gạch t.
Và sau đó khi tôi đã làm điều đó, bây giờ mỗi thời gian tôi sẽ có cách khác sử dụng struct
xe, tôi chỉ có thể sử dụng xe gạch t.
Đó là ngắn hơn rất nhiều một cách để thể hiện ý tưởng này của cấu trúc này
mà tôi vừa tạo ra.
>> Ngoài ra, bởi vì cấu trúc được như vậy thường được sử dụng trong typedef,
có a-- bạn thực sự có thể xác định gõ vào giữa bắt đầu và kết thúc.
Vì vậy, cơ cấu lại là typedef thường typedef, tên cũ, tên mới,
nơi những cái tên đã loại mà bạn đã tạo.
Nhưng bạn thực sự có thể định nghĩa một cấu trúc ngay ở giữa của typedef
thay vì phải xác định nó một cách riêng biệt, và sau đó
làm một typedef của nó.
Và đó sẽ trông giống như this-- typedef struct xe,
ngoặc móc mở, tất cả các lĩnh vực của bạn định nghĩa, nẹp xoăn gần, xe t.
Vì vậy, tên cũ là tất cả những thứ trong màu đỏ, bạn chỉ cần xác định cấu trúc
và đặt tên cho nó cùng một lúc.
Và sau đó là tên mới là xe gạch t.
Và như vậy, nếu chúng ta bắt đầu sử dụng này trong mã, trước đây tôi
có thể nói, struct xe mycar dấu chấm phẩy.
Tôi cũng không phải làm điều đó nữa.
Bây giờ mà tôi đã sử dụng typedef, tôi chỉ có thể nói xe gạch t, ​​myCar.
Đó là ngắn hơn rất nhiều một cách để làm điều đó, và trong thực tế, nó là
sẽ được nhiều hơn thuận tiện, đặc biệt là
khi bạn bắt đầu sử dụng các cấu trúc nhiều hơn trong mã của bạn.
>> Tôi Doug Lloyd.
Đây là CS50.