תכנות — שיעור 118 10/June/2010    

C — Pre-Processing

ראינו קצת מהיכולות של ה"תהליך המקדים" של שפת C   (C pre-processing).
לדוגמא:

בעזרת הוראות pre-processing אלה אפשר לדאוג שהכנסה (include) כפולה של קבצי header לא תגרום להצהרות או הגדרות כפולות.

דוגמאות בתרגילים.

Make & Makefile

הכלי make הוא חזק ומורכב. ברֹב המקרים הוא משמש לבניית תכניות, ומגדיר את שלבי הבניה והתלויות וגם תומך בגירסאות בנייה שונות. בדרך כלל הוא מתיחס לקֹבץ Makefile בו נמצאות הגדרות המטרות, החוקים והתלויות (targets, rules, dependencies). הגדרות מדויקות, חוסכות שלבים מיותרים בבנייה חוזרת, כך שמבוצעים שוב רק השלבים הנחוצים. הכלי make בודק לשם כך, בין היתר את זמני יצירת הקבצים. כמובן קיים תיעוד מלא .

דוגמאות בתרגילים.


תרגילים

  1. הורד ופתח את pdb-v9.tar.gz במדריך (directory) חדש ונקי. הרץ
    make
    שאמור לבנות את התכנית pdb-v9.
  2. (במדריך נקי וחדש, לאחר העתקה) שַנֵה את הגירסא מ- v9 ל- v10. בצע
    make
    make tgz

    וְוַדֵא כי נוצרת התכנית pdb-v10 והקֹבץ pdb-v10.tar.gz
  3. בקובץ Makefile מוגדרות התלויות של קבצי *.o בקבץ .c המתאים, אבל חסרות תלויות בקבצי header. הוסף את התלויות הדרושות.
  4. למי שיספיק: בטיפוס person_t קיים השדה:
    char name[60];
    שַנֵה אותו לְ
    char *name;
    זה כמובן ידרוש שינויים נוספים של הקצאה ושחרור זכרון.
  5. ארוז את הקבצים לפתרון על ידי:
    make tgz
    שאמור ליצור את הקובץ pdb-v10.tar.gz אותו יש לשלֹחַַ.

חזרה לעמוד האם