דף הבית שיעורים תוספות לא מונחות עצמים
הגדרת struct ו-enum
 
הגדרת struct ו-enum
 
ב-C יכול להופיע קוד כמו כאן:

struct car {
 char make[16];
 char model[16];
 int year;
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

קטע קוד זה מיידע את המהדר על מבנה בשם car המכיל את השדות make, model ו-year.
בכדי ליצור משתנה מסוג car, עליך להשתמש במילה struct ואחריה בסוג המבנה אותו הגדרת, כמו כאן:

struct car myCar;
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

ב-C, הגדרת מבנה אינה יוצרת טיפוס נתונים חדש, השם car נקרא תוית והוא אינו מגדיר את שם הטיפוס בעצמו, אלא עליך להשתמש במילה struct בכל פעם שתרצה להגדיר משתנה מסוג זה, כמו שעשינו בעת הגדרת המשתנה myCar.
מצד שני אתה יכול להגדיר את המבנה car_ כ-typedef. מילה זו מגדירה שם נוסף למילה קיימת, דבר המאפשר להימנע מהמילה struct בעת הגדרת משתנה מסוג זה, אך זאת במחיר השימוש במילה typedef:

typedef struct _car {
 char make[16];
 char model[16];
 int year;
};

_car myCar;
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

ב-++C, לעומת זאת, הגדרת מבנה בדרך הראשונה הוא בעל אותה השפעה כמו הגדרת המבנה בתוספת typedef, לכן אין צורך בכל המילים הנוספות הללו:

struct car {
 char make[16];
 char model[16];
 int year;
};

car myCar;
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

בפועל, יש שוני חשוב בין הגדרת מבנה ב-++C לבין הגדרתו ב-C: ב-++C הגדרת המבנה מגדירה באמת טיפוס נתונים חדש, ובעת הגדרת המבנה car אנו יוצרים טיפוס נתונים חדש בשם car שניתן להשתמש בו בדומה לשימוש בטיפוסי נתונים קיימים בשפה כמו int ,char וכדומה.
עיקרון זה תופס גם ל-struct וגם ל-enum.