++c - שאלה לגבי מבנים :typedef

tom1992

New member
++c - שאלה לגבי מבנים :typedef

מהו למעשה ההבדל בין שימוש במבנה עם פקודת typedef לבין שימוש בלעדיה? האם היא הכרחית?
 

nocgod

New member
שונא כשמלמדים typedef יחד עם structs

א. לא אתה לא חייב להשתמש בtypedef כשאתה עובד עם struct, אתה תמיד יכול לכתוב את השם המלא של הטיפוס שכולל את המילה struct
ב. אין שום הבדל בין להשתמש בשם המלא של הטיפוס לבין השם שתגדיר עם typedef (לא כזה שידוע לי לפחות)
ג. לצורך העניין אתה יכול להגדיר typedef int boo או typedef float real או כל דבר אחר וזה יהיה בסדר גמור
 

bismark1

New member
זה ירושה מ-C

בשפת C, אם תרצה להשתמש במבנה:
struct my_struct{
int some_int;
};
הקוד הבא לא יתקמפל:
my_struct a; //not ok for C
ותצטרך לכתוב:
struct my_struct a;
ולכן, בשביל לא להצטרך לתקוע את הביטוי struct בכל מקום בקוד נהוג להשתמש ב-typedef:
typedef struct my_struct{
int some_int;
}_a_shrubbery;
_a_shrubbery not_too_expensive; //this is ok
ב- ++C לעומת זאת, אפשר להשתמש ישירות בשם המבנה מבלי להגדיר typedef:
my_struct a; //ok for C++

האם יש הבדל בשימוש עם ובלי typedef? בתאוריה כן, בפועל רוב מכריע של המתכנתים ב- ++C לא משתמש ב-typedef ביחד עם מבנים והעולם ממשיך להסתובב...
 
למעלה