דאג LLOYD: אז אם יש לך ראיתי וידאו שלנו על מבנים,
אתה כבר יודע שיש לנו היכולת להגדיר סוגי נתונים שלנו.
אבל אם יש לך מבנים המשמשים, אתה יודע שלפעמים משתמשים בסוגים אלה נתונים
באמת יכול להיות קצת מסורבל בגלל שאנחנו
יש להשתמש במילת מפתח struct כאשר אנחנו עובדים עם them--
מכונית struct או סטודנט struct.
זה הרבה להקליד אם אנחנו רק רוצים שנהיה לי
משהו פשוט, כמו מבנה.
אנחנו רוצים נו-- אנחנו רוצים להיות מסוגל לעבוד עם דברים
דרך קצרנות יותר קטנה, כמו int או char, משהו הרבה
יותר נוח להקליד.
>> למרבה המזל, יש דרך לעשות זאת ב- C,
עם משהו שנקרא typedef, שהוא דרך ליצור קיצור או שוכתב
שמות לסוגי נתונים.
אתה יכול לשכתב את הנתונים סוגים שכבר קיימים,
או שאתה יכול לכתוב סוגי נתונים משלך.
>> הדבר הראשון שאתה צריך לעשות זה אתה מגדיר סוג בדרך הרגילה,
ואז אתה פשוט כינוי אותו למשהו else-- typedef שם חדש שם ישן.
די פשוט, נכון?
כדי שנוכל typedef למשל, נתונים שכבר קיימים
סוג char חתום כבתים.
ולאחר מכן, מעתה והלאה, אחרי ש עשה סוג זה definition-- שוב,
אשר בדרך כלל הולך להיות בחלק העליון של קבצי C הנקודה שלנו, או בקובץ H נקודה
בנפרד, אנחנו יכולים רק משתמש לנשוך בכל מקום
היינו משתמש char חתום.
זה הרבה יותר קצר להקליד.
>> בספרייה של CS50, אנחנו עושים זה-- אנחנו typedef כוכב char כמחרוזת.
כי אנחנו הפשטה משם את הרעיון של מצביעים.
והעובדה שמחרוזת היא באמת מצביע לcharacter-- הראשון
מערך של תווים, כי זה פשוט
כל כך מבלבל כדי לקבל את הראש סביב לראות-- אבל למעשה זה מה שאנחנו עושים.
והקו הזה של קוד קיים למעשה במחרוזת הכוכבים char CS50 הנקודה typedef H,
רק כדי לעשות את זה קצת פחות מסורבל לצריכים להתמודד עם.
כבר ראית כנראה קצת הערך כאן,
אבל typedef הופך גדול בשילוב עם מבנים,
כפי שהוזכרתי קודם לכן.
יש מבנים שם סוג שתי מילות.
וכך הם יכולים להיות ממש מעצבן כדי ליצור משתנים מסוג זה,
או [לא ברור] של משהו struct, קווים רק יכולים לקבל באמת, באמת ארוך.
ואז אתה יכול להשתמש בtypedef לבוא עם משהו הרבה יותר קצר.
>> אז אם אני מגדיר את מכונית באופן הבא, יש לי ההגדרה שלי של מכונית struct car--,
ולאחר מכן פתח סד מתולתל, כל השדות של המבנה שלי,
סד מתולתל קרוב, חצי colon-- אחרי שהגדרתי סוג הנתונים שלי,
אני יכול typedef struct מכונית כt תחתון מכונית.
ואז, כשאני כבר עשיתי את זה, עכשיו כל struct זמן הייתי בשימוש אחר
מכונית, אני יכול פשוט להשתמש t התחתון מכונית.
זה קצר הרבה דרך ל לבטא את הרעיון הזה של מבנה זה
כי אני פשוט נוצר.
>> לחלופין, כי מבנים הם כל כך נפוצים בtypedef,
יש זה-- אתה באמת יכול להגדיר את הקלד בין ההתחלה והסוף.
אז מבנה typedef הוא שוב בדרך כלל typedef, שם ישן, שם חדש,
שבו שמותיהם כבר סוגים שיצרתם.
אבל למעשה אתה יכול להגדיר מבנה ממש באמצע של typedef
במקום שיש להגדיר אותו בנפרד, ולאחר מכן
לעשות typedef שלו.
וזה היה נראה בדיוק כמו המכונית struct typedef זה--,
סד מתולתל פתוח, כל תחום שלך הגדרות, סד מתולתל קרוב, לא מכונית.
אז השם הישן הוא כל הדברים האלה ב אדום, אתה רק מגדיר את המבנה
ושיום זה באותו הזמן.
ולאחר מכן את השם החדש הוא לא תחתון מכונית.
ולכן אם אנחנו מתחילים להשתמש זה בקוד, בעבר אני
אולי אמר, struct mycar מכונית למחצה מעי גס.
ובכן, אני לא צריך לעשות את זה יותר.
עכשיו אני כבר השתמשתי בtypedef, אני רק יכול לומר לא תחתון מכונית, mycar.
זה קצר הרבה דרך כדי לעשות את זה, ולמעשה, זה
הולך להיות הרבה יותר נוח, במיוחד
כמו שאתה מתחיל להשתמש במבנים הרבה יותר בקוד שלך.
>> אני דאג לויד.
זה CS50.