שאלות של נוב בc++ :)

GPhoenixX

New member
שאלות של נוב בc++ :)

2 שאלות : 1. מה ההבדל בין
typedef struct { ... } bla; לבין struct { ... } bla;​
ומה ההבדל בין
struct bla { ... } לבין struct { ... }bla;​
תודה :*)
 

mooznach

New member
תשובות:

1) אין הבדל בין ה2. ההגדרה הראשונה היא פשוט איך שמגדירים את זה בC. 2) יוצר משתנה שקוראים לו bla מסוג הרשומה. במקרה הזה היא פשוט אנונימית.
 

mooznach

New member
וואו בילבלתי את הכל.

אוקיי -
typedef struct bla { //... };​
זה סטייל של C. אין צורך להשתמש בו ב++C.
struct bla { //... };​
צורת ההגדרה של ++C.
struct { //... } bla;​
יותר רשומה אנונית ומשתנה מסוג הרשומה הזאת בשם bla.
 

selalerer

New member
לא, דווקא התשובה הקודמת הייתה יותר

טובה. ב C יש או
struct bla { };​
או
typedef struct { } bla;​
בראשון אתה צריך לכתוב struct כל פעם שאתה פונה אליו ואתה יכול גם בין הסלסל מסיים לבין הנקודה פסיק להגדיר מופעים של המבנה הזה ובשני אתה יכול ישר להתשמש בbla בלי struct לפניו כל פעם. מה זה:
typedef struct bla { };​
אני לא יודע.
 

zagzagzag

New member
לגבי הדוגמה האחרונה

אני לא יודע מה ההגדרה המדויקת (או אם בכלל יש כזו), אבל ב-C משתמשים בהצהרה כזו אם רוצים להגדיר typedef ל-struct ויש הצהרה קודמת שצריכה את ה-struct דוגמה:
typedef struct name *pname; typedef struct name { ... } name_t;​
אם סדר השורות היה הפוך לא היה צורך לתת ל-struct שם
 

selalerer

New member
קראתי אותה שוב והיא לא הייתה יותר

טובה, הן פשוט שתיהן שגויות.
 

mooznach

New member
כן

typedef struct bla { //... }​
היה צריך להיות
typedef struct { //... } bla;​
 
למעלה