הקדם-מעבד של שפת C

הקדם מעבד של שפת Cאנגלית: C preprocessor) הוא תוכנה טקסטואלית שרצה לפני הקומפילציה על הקוד ומשנה אותו לצורכי הקומפילציה, תוצר התוכנה לא נשמר והקוד בקבצים נשאר כשהיה לפני כן.

פקודות לקדם מעבד מתחילות בתחילת שורה עם התו '#'.

פקודת defineעריכה

הפקודה define מגדירה סימבולים, המילה הראשונה לאחריה היא הסימבול וכל מה שמופיע לאחריו בשורה הוא הפירוש שלו, כאשר פירוש ריק הוא חוקי. בכל מקום בו הסימבול מופיע לאחר המקום בו הוא הוגדר, הוא יוחלף בפירוש שלו.

הגדרת סימבול כפונקציהעריכה

ניתן להגדיר סימבול שמקבל קלט כמו פונקציה (כאשר הסוגריים צמודים לסימבול ללא רווח), ובפירוש של הסימבול להשתמש בקלט.

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

פקודת includeעריכה

פקודת include ולאחריה שם קובץ, מוקף בגרשיים או בסוגריים משולשים, מכניסה את תוכן הקובץ לשורה של פקודת ה-include.

קבצים אלו מכונים בדרך כלל header file וסיומתם h. מקובל שקבצים אלו יכילו רק הצהרות ומאקרו ולא פונקציות, על מנת למנוע מצב של פונקציות זהות בכמה מקומות בקוד. שלא כמו בפקודת define, אין מניעה שבקבצים אלו יהיו פקודות של קדם המעבד.

פקודות תנאיעריכה

באמצעות הקדם-מעבד, ניתן להגדיר האם קטע קוד כלשהו יתקמפל או לא, כתלות בהאם סימבול הוא קיים על ידי הפקודה ifdef או על ידי תנאי בוליאני על ידי הפקודה if. הפקודה מתבצעת על כל הקוד עד הפקודה end. כמו כן ניתן להשתמש בפקודה else כדי לשים קוד אחר במקרה המשלים.

קישורים חיצונייםעריכה