הבדל בין מבנה לאיחוד ב-C

תוכן עניינים:

הבדל בין מבנה לאיחוד ב-C
הבדל בין מבנה לאיחוד ב-C

וִידֵאוֹ: הבדל בין מבנה לאיחוד ב-C

וִידֵאוֹ: הבדל בין מבנה לאיחוד ב-C
וִידֵאוֹ: שפה C | שיעור 1 - ״ברוכים הבאים״ 2024, יולי
Anonim

הבדל מפתח - מבנה לעומת איחוד ב-C

מערך הוא נתונים המובנים הנתמכים על ידי שפת C. ניתן להשתמש במערך לאחסון רכיבי נתונים מאותו סוג. אם יש משפט כסימני int [10]; אז סימנים הם מערך שיכול לאחסן עשרה סימנים וכולם מספרים שלמים. לפעמים נדרש לאחסן רכיבי נתונים מסוגים שונים באותו מיקום זיכרון. לדוגמה, לעובד יכול להיות זיהוי עובד, שם, מחלקה, גיל וכו'. הם מסוגים שונים של נתונים. לכן, יש צורך בשיטה לאחסון רכיבי נתונים שונים כיחידה אחת. מבנים ואיגודים ב-C משמשים לאחסון רכיבי נתונים מסוגים שונים באותו מיקום זיכרון.מבנה ואיחוד דומים אבל הם מבדילים בעיקר בגלל הקצאת זיכרון. הזיכרון הנדרש לאחסון משתנה מבנה הוא סיכום גודל הזיכרון של כל האיברים. הזיכרון הנדרש לאחסון משתנה איחוד הוא הזיכרון הנדרש עבור האלמנט הגדול ביותר באיחוד. זה ההבדל העיקרי בין מבנה לאיחוד ב-C. מאמר זה דן בהבדל בין מבנה לאיחוד ב-C.

מהו מבנה ב-C?

מבנה הוא סוג נתונים המוגדר על ידי משתמש ב-C. הוא עוזר לשלב פריטי נתונים מסוגים שונים. מבנה יכול לייצג רשומות. לתלמיד יכול להיות student_id, student_name וכו'. במקום לאחסן כל משתנה בנפרד, כל פריטי הנתונים השונים הללו יכולים להיות קומפקטיים ליחידה אחת באמצעות מבנה. הוא מוגדר באמצעות מילת המפתח 'struct'. במבנה, ניתן לגשת לכל החברים שלו בכל עת. הקטע הבא יוצר מבנה סוג נתונים נגזר Student.

struct סטודנט {

intstudent_id;

char student_name[20];

};

עבור המבנה לעיל, ניתן להצהיר על משתנים באופן הבא.

struct Student student1, student2, student3;

ישנן שתי שיטות לגשת לחברי המבנה. כלומר באמצעות אופרטור חבר (.) ואופרטור מצביע מבנה (->). ניתן לגשת לחברים באמצעות structure_variable_name. שם חבר. אם המתכנת רוצה לגשת לשם של תלמיד 2, אז הוא יכול לכתוב את ההצהרה כ-printf(student2.student_name);

עיין בתוכנית שלהלן עם מבנה.

ההבדל בין מבנה לאיחוד ב-C
ההבדל בין מבנה לאיחוד ב-C

איור 01: תוכנית C עם מבנים

לפי התוכנית לעיל, סטודנט הוא מבנה.הוא מכיל student_id ו-student_name. שני משתנים מסוג מבנה מוכרזים בתוכנית הראשית. הם נקראים תלמיד1 ותלמיד2. המזהה של student1 מוקצה עם ערך 1 באמצעות האופרטור חבר בתור student1.student_id=1. השם "אן" הוא מחרוזת. לכן, הוא מועתק לאיבר student_name באמצעות פונקציית string copy strcpy. המזהה והשם מוקצים לתלמיד2 באופן דומה. לבסוף, ערכים אלה מודפסים באמצעות אופרטור חבר.

כמות הזיכרון הנדרשת לאחסון משתנה מבנה היא סכום גודל הזיכרון של כל האיברים. ה-student_id מכיל 4 בתים ו-student_name מכיל 20 בתים (בייט אחד כל אחד עבור תו). סך הכל 24 בתים הוא סכום גודל הזיכרון הנדרש על ידי המבנה.

מה זה יוניון ב-C?

איחוד הוא סוג נתונים המוגדר על ידי משתמש ב-C. הוא עוזר לאחסן סוגי נתונים שונים באותו מיקום זיכרון. ספר יכול לכלול מאפיינים כגון book_name, price וכו'. במקום ליצור משתנים עבור כל אחד מהם, ניתן להשתמש באיחוד כדי לדחוס את כל סוגי הנתונים השונים ליחידה אחת באמצעות איחוד.הוא מוגדר באמצעות מילת המפתח 'איחוד'. הבא יוצר ספר איחוד נתונים נגזר.

unionBook{

שם התו[20];

מחיר כפול;

};

עבור האיחוד שלמעלה, ניתן להצהיר על משתנים באופן הבא.

union ספר ספר1, ספר2;

ישנן שתי שיטות לגשת לחברי האיגוד. כלומר באמצעות אופרטור חבר (.) ואופרטור מצביע מבנה (->). ניתן לגשת לחברים באמצעות union_variable_name. שם חבר. אם המתכנת רוצה לגשת לשם של הספר1, אז הוא יכול לכתוב את ההצהרה כ-printf(book1.name);

עיין בתוכנית שלהלן עם איגוד.

ההבדל בין מבנה לאיחוד ב-C_Figure 02
ההבדל בין מבנה לאיחוד ב-C_Figure 02

איור 02: תוכנית C באמצעות union

לפי התוכנית לעיל, הספר הוא איגוד. הספר1 הוא משתנה מסוג איחוד. השם והמחיר הם ערכים מוקצים. באיחוד, ניתן לגשת רק לאחד מחבריו בכל פעם ולכל שאר החברים יהיו ערכי זבל. הערך של id לא מודפס כראוי אבל ערך המחיר מודפס כראוי.

ההבדל העיקרי בין מבנה לאיחוד ב-C
ההבדל העיקרי בין מבנה לאיחוד ב-C

איור 03: תוכנית C שונתה עם איחוד

לפי התוכנית לעיל, ספר הוא איגוד. הספר1 והספר2 הם משתנים מסוג איחוד. ראשית, הערך עבור שם book1 מוקצה והוא מודפס. לאחר מכן הערך עבור שם ספר2 מוקצה והוא מודפס. כל האיברים מודפסים כראוי מכיוון שנמצא איבר אחד בכל פעם. הזיכרון הנדרש לאחסון איחוד הוא הזיכרון הנדרש עבור האלמנט הגדול ביותר של האיחוד.בתוכנית לעיל, משתנה השם הוא 20 בתים. זה יותר גדול מהמחיר. אז, הקצאת הזיכרון לאיגוד היא 20 בתים.

מהם הדמיון בין מבנה לאיחוד ב-C?

  • שניהם Structure וגם Union ב-C הם סוגי נתונים המוגדרים על ידי המשתמש.
  • ניתן להשתמש גם במבנה וגם באיחוד ב-C לאחסון סוגי נתונים שונים באותו מיקום זיכרון.

מה ההבדל בין מבנה לאיחוד ב-C?

Structure vs Union ב-C

Structure הוא סוג נתונים המוגדר על ידי המשתמש בשפת C המאפשר שילוב נתונים מסוגים שונים יחד. Union הוא סוג נתונים המוגדר על ידי המשתמש בשפת C המאפשר שילוב נתונים מסוגים שונים יחד.
נגישות
במבנה, ניתן לגשת לכל החברים שלו בכל עת. באיגוד, ניתן לגשת רק לאחד מחבריו בכל פעם וכל שאר החברים יכילו ערכי זבל.
הקצאת זיכרון
הזיכרון הנדרש לאחסון משתנה מבנה הוא סיכום גודל הזיכרון של כל האיברים. הזיכרון הנדרש לאחסון משתנה איחוד הוא הזיכרון הנדרש עבור האלמנט הגדול ביותר באיחוד.
מילת מפתח
מילת המפתח המשמשת להגדרת מבנה היא 'struct'. מילת המפתח המשמשת להגדרת איחוד היא 'איחוד'.

סיכום – Structure vs Union ב-C

מערך משמש לאחסון רכיבי הנתונים מאותו סוג.לפעמים יש צורך לאחסן רכיבי נתונים מסוגים שונים באותו מיקום זיכרון. שפת התכנות C מספקת מבנה ואיגוד לביצוע משימה זו. שניהם סוגי נתונים המוגדרים על ידי המשתמש. הזיכרון הנדרש לאחסון משתנה מבנה הוא סיכום גודל הזיכרון של כל האיברים. הזיכרון הנדרש לאחסון משתנה איחוד הוא הזיכרון הנדרש עבור האלמנט הגדול ביותר באיחוד. זה ההבדל בין מבנה לאיחוד ב-C.

מוּמלָץ: