תכנית רבת קבצים בשפת c.
הודעה זו נכתבה על-ידי בכר נסים בתאריך: 13.09.08 - שעה: 23:51:45
שלום רב ! כתבתי תכנית גדולה וארוכה בת כמה אלפי שורות קוד בשפת c. בגלל אורך התכנית כמה אלפי שורות, כאמור הגיע מצב שהמהדר לא יכל לבצע הידור והתכנית נתקעה בהידור. בזמנו הכרתי מתכנת מומחה בשפת c וזה הסביר לי שלא כותבים תכנית אחת גדולה וארוכה, משום שהמהדר יתקע מחוסר זיכרון ואמר שצריך לפרק את התכנית הארוכה למספר קבצים קטנים, סייע לי לפרק את התכנית הגדולה לכ- 30 קבצי c ו- h וכך שבתי אליו, החילוק מצא חן בעיניו והיה תקין, העלה את כל הקבצים לקומפיילר, נכנס לאופציה project שבתפריט הראשי העליון והשתמש בתת האופציה add וכך הוסיף בכל פעם אחד מקבצי המשנה שערכתי ובסיום הפעולה, ביצע הידור וראה איזה פלא, זה עבד. כמו כן הסביר עד כמה שזכור לי, שאם בונים תכנית אחת גדולה או מחלקים אותה לקובצי "הדר" שנכללים בראש התכנית, מבחינת המהדר, זה אותו דבר משום שבהדור הוא מכניס ושומר את כולם בזיכרון עד שנגמר המקום. ואילו בשיטה שהסביר לי, הקומפיילר מבצע הידור של כל קובץ בנפרד מול הקובץ הראשי ובסיומו, שומט את הקובץ המשני מהזיכרון וכך עובר להדר את הקובץ המשני הבא, יוצא עד כמה שהבנתי שלמעשה, גודל הזיכרון שנתפס בעת ההידור, קטן מאוד. אני מקווה שהצלחתי להסביר נכון את בעייתי אולם הפתרון קשה לי ורחוק. אני מאמין שעם סבלנות ורצון לעזור הבעיה תיפתר. תודה מראש, בכר נסים.
|
תודה על המידע אחי
הודעה זו נכתבה על-ידי Dj Roy בתאריך: 26.09.08 - שעה: 09:51:00
| |