Struct הוא כשמו - מבנה.מה זאת אומרת מבנה ?
זאת אומרת שזה טיפוס חדש (Type, כמו שיש לך מחרוזות, ממשיים, שלמים וכו').
מה מיוחד בטיפוס הזה ?
זה טיפוס שמכיל בתוכו טיפוסים אחרים.
אם מבנה הזיכרון של משתנה מסוג char יתפוס בית אחד (byte), אז מבנה זיכרון של מבנה (struct) שמכיל בתוכו שני charים, יתפוס כ-2 בתים.
למה זה צריך את זה ?
אם למשל, אתה רוצה משתנה שיכיל ווקטור דו-מימדי, אז אתה צריך גם את ערך ה-X, וגם את ערך ה-Y. בדרך הרגילה, היית צריך להשתמש או במערך, או בשני משתנים. אבל זה גם לא נוח, וגם, כשאתה רוצה למשל לעשות מערך של המשתנה הזה (ווקטור), אז תיווצר לך בעייה, ושוב פעם, זה לא נוח.
דוגמה למימוש ב-C:
typedef struct { float X; float Y; } vector;int main() { vector vec1, vec2; vec1.X = 0.75; vec1.Y = 0.86; vec2 = vec1; return 0; }
|
דוגמה נוספת, ללא הגדרת הטיפוס:
int main() { struct vector { float X; float Y; } vec1, vec2; vec1.X = 0.5 vec2.X = vec1.Y = (vec1.X * 0.86); return 0; }
|
Dudenland