06-02-2007, 16:39
|
|
|
חבר מתאריך: 15.08.06
הודעות: 1,561
|
|
ציטוט:
במקור נכתב על ידי Ch00k
ולגבי מה שכתבת:
עעכשיו my_list_info_type יהיה המשתנה מסוג איבר ברשימה?
איפה אני רושם אותו ואיך אני עובד איתו בפונקציה הראשית
|
תסתכל על המימוש של הרשימה. מה שקורה שם זה שיש מערך של מספר קבוע מראש (אני חושב שקבעו לך אותו ל30) של list_info_type. ועשו typedef כדי שlist_info_type יהיה בעצם int.
אז עם אותו טריק, אתה משנה את list_info_type שיהיה סטראקט, ואז בעצם תקבל מערך של סטראקטים.
ציטוט:
במקור נכתב על ידי Ch00k
עוד משהו:
איך אני יכול להציג בבת אחת ממשתנה מבנה x את כל הערכים בהתאמה למשתנה y שגם הוא מבנה
זתומרת אני מתכוון שאם x הוא רשומה המכילה שני ערכים num,grade ואני רוצה להציב את מה שיש כעת בx כלומר x.num , x.grade לy בדרך הכי קלה איך לעשות את זה?
איך אני מעתיק נתונים מרשומה x לרשומה y בצורה הכי קלה
|
אם x וגם y הם שניהם משתנים מאותו סוג (גם אם הסוג הזה הוא struct), אז אתה יכול לבצע השמה ביניהם (זה נקרא השמה רדודה - shalow assignment).
ציטוט:
במקור נכתב על ידי Ch00k
וכאשר אני מעביר את x שהוא רשומה כפרמטר לפונקציה איך זה בדיוק יעבוד?
|
הרשומה מוגדרת כמשתנה רגיל. היא עוברת בדיוק כמו int, float, וכו'.
דוגמא:
קוד:
typedef struct my_list_info_type {
int num;
int grade;
} list_info_type;
void main() {
list_info_type x,y;
x.num = 1;
x.grade = 100;
y = copyNode(x);
}
list_info_type copyNode(list_info_type node) {
node.num++;
return node;
}
הפונקציה הזאת משכפלת את הציון ומגדילה את המספר של הרשומה (לא המקורית)
|