07-01-2005, 13:48
|
|
|
חבר מתאריך: 20.12.01
הודעות: 20,962
|
|
כתבתי על זה בקיצור נמרץ(מאוד) בפורום הישן:
מקרו להידור בתנאי - קבצי H
עוד שימוש להידור בתנאי בעזרת מקרואים הוא קבצי H.
קבצי H מכילים כותרי פונקציות(prototypes), ונדרשים בשפת C(לא מעניין כרגע למה, מה גם שאני אישית לא מת על הרעיון[img]../dcforum/Images/bullets/loveit.gif[/img])
אסור לכתוב את אותו prototype פעמיים.
הבעיה מתגלה כאשר בשני קבצי C שונים(לדוגמה) יש INCLUDE לאותו קובץ H - משמע אותם prtotypes יחזור פעמיים(או יותר)...!
כדי להמנע מזה, קבצי H נראים בערך כך:
#ifndef _HFileName_H_
#define _HFileName_H_
//Contents of H file go here
//and here...
//and here...
//and here we have:
#endif /* _HFileName_H_ */
בפעם הראשונה, מכיון שהמקרו לא מוגדר - נכסנים לבלוק ה-#if, שם מגדירים את המקרו, ונכתס תוכן הקובץ.
בפעם השניה שהקובץ יוכלל, מאחר והמקרו כבר הוגדר - לא נכנס לבלוק ה-#if - והנתונים לא יופיו פעם נוספת.נחמד[img]../dcforum/Images/bullets/smile.gif[/img]
|