הכרזה על struct
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C של Coddy. שיעור 39 מתוך 63.
עכשיו, כשברור לך מהו struct, הגיע הזמן ללמוד איך ליצור טיפוסי מבנים משלך. הצהרה על struct ב-C נעשית לפי תחביר מסוים שמגדיר את התבנית לטיפוס הנתונים המותאם אישית שלך.
התחביר הבסיסי להכרזה על struct הוא:
struct StructureName {
datatype member1;
datatype member2;
// ... איברים נוספים
};כך פועל כל חלק: מתחילים במילת המפתח struct, ואחריה מציינים שם למבנה, ואז מפרטים את כל המשתנים החברים בתוך סוגריים מסולסלים. כל חבר מוכרז בדיוק כמו משתנה רגיל, עם סוג הנתונים שלו ושמו. אל תשכחו את נקודה-פסיק אחרי הסוגר המסולסל הסוגר!
לדוגמה, כדי ליצור מבנה שמייצג נקודה במרחב דו־ממדי:
struct Point {
int x;
int y;
};ההצהרה הזו יוצרת סוג נתונים חדש בשם struct Point שמכיל שני איברים שלמים: x ו־y. לאחר שהוגדר, ניתן להשתמש בסוג המבנה הזה לאורך כל התוכנית כדי ליצור משתנים שמחזיקים מידע על קואורדינטות באופן מאורגן.
אתגר
קלכתבו תוכנית ב-C שמגדירה struct לייצוג ספר במערכת ספרייה. התוכנית שלכם צריכה:
- להגדיר
structבשםBookשמכיל את האיברים הבאים:- מספר שלם
idלאחסון מספר הזיהוי של הספר - מערך תווים
titleבגודל 50 לאחסון שם הספר - מספר שלם
pagesלאחסון מספר העמודים - מספר נקודה צפה
priceלאחסון מחיר הספר
- מספר שלם
- לאחר הגדרת ה-struct, להדפיס הודעת אישור:
Book struct defined successfully! - להדפיס את גודל ה-struct
Bookבבתים באמצעותsizeof()בפורמט:Size of Book struct: [size] bytes - להדפיס את הגודל של כל איבר בנפרד:
Size of id: [size] bytesSize of title: [size] bytesSize of pages: [size] bytesSize of price: [size] bytes
האתגר הזה בודק את ההבנה שלכם בתחביר של הצהרת struct, כולל השימוש הנכון במילת המפתח struct, הצהרות איברים עם טיפוסי נתונים מתאימים ונקודה-פסיק לאחר הסוגר המסולסל הסוגר. תבדקו גם כיצד C מקצה זיכרון לאיברי struct באמצעות האופרטור sizeof().
זכרו שערכי הגודל המדויקים עשויים להשתנות בהתאם לארכיטקטורת המערכת שלכם, אבל תחביר הגדרת ה-struct חייב להיות נכון כדי שהתוכנית תתקמפל ותרוץ בהצלחה.
נסו בעצמכם
#include <stdio.h>
int main() {
// TODO: הגדירו כאן את ה-struct Book שלכם
// הדפיסו הודעת אישור
printf("Book struct defined successfully!\n");
// TODO: הדפיסו את הגודל של ה-struct Book ושל האיברים שלו
return 0;
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1יסודות המצביעים
מהו מצביע?הכרזה על מצביעיםאופרטור לקיחת הכתובת (&)אופרטור ביטול ההפניה (*)מצביעי NULLסיכום: יסודות המצביעים7מבנים (structs)
מהו struct?הכרזה על structיצירת משתני structגישה לאיברי structאתחול structסיכום: struct לנתוני תלמיד2מצביעים ומערכים
שמות מערכים כמצביעיםאיברי מערך ומצביעיםאריתמטיקה של מצביעיםהשוואת מצביעיםסיכום: מעבר על מערך באמצעות מצביעים5מצביעים ופונקציות
העברה לפי ערךהעברת מצביעים לפונקציותשינוי משתנים באמצעות מצביעיםדוגמה קלאסית: החלפההעברת מערכים לפונקציותחזרה: ארגומנטים של מצביעי פונקציה3מערכי תווים ומחרוזות
מחרוזות כמערכי charתו הסיום nullקלט מחרוזת באמצעות scanfשימוש ב־strlen()שימוש ב־strcpy()שימוש ב־strcat()שימוש ב־strcmp()סיכום: פונקציות מחרוזת בסיסיותתרגלו בעצמכם: קומפיילר C אונליין