שאלה קטנה ב-C:

Giladovich

New member
שאלה קטנה ב-C:

יש לי פרוייקט כלשהוא שמכיל מספר גדול של קבצים. נוצר מצב, בו יש לי שני קבצים שכל אחד צריך לעשות include לשני, כדי לקבל את ההגדרות והפונקציות שבו. כלומר: בקובץ b.h:
#include "a.h" ...​
ובקובץ a.h:
#include "b.h" ...​
כמובן שהקומפיילר נותן שגיאה על זה, כי יש כאן כפל הגדרות. איך אפשר לטפל בבעיה זו? (מבלי לאחד את שני הקבצים לקובץ אחד?) תודה מראש, גלעדוביץ'.
 

vinney

Well-known member
זה קורה הרבה פעמים

כשלא מארגנים מראש את הדברים כמו שצריך מה שעושים זה טריק פשוט וידוע : בראש כל קובץ H (בשורה הראשונה ממש) תעשה #ifndef __THIS_HEADER_NAME #define __THIS_HEADER_NAME ובסוף הקובץ (בשורה האחרונה) תישם את ה #endif. כמובן, במקום __THIS_HEADER_NAME תכתוב את שם קובץ הH עצמו. ככה אתה תבטיח שההגדרות יכללו רק פעם אחת, גם אם קובץ עצמו נכלל יותר מפעם אחת.
 
למעלה