19-02-2009, 14:31
|
|
|
חבר מתאריך: 22.08.08
הודעות: 310
|
|
דבר ראשון, לא ככה כותבים את זה.
זה ifndef, לא if!defined.
דבר שני - אתה לא יכול להכריז משתנים גלובליים עם הpreprocessor.
הוא סך הכל לוקח איזו שהיא מחרוזת ובכל מקום שהוא מוצא אותה בתכנית, הוא מחליף אותה עם הערך שהוגדר (זה נקרא inline).
לדוגמא:
קוד PHP:
#define abbbb 'c'
cout<<abbbb;
abbbb פה הוא לא משתנה, הוא סתם מחרוזת של אותיות. בזמן הקימפול (עוד לפני הקימפול עצמו) אחד מהשלבים של הפרי-קומפיילר הוא להחליף את abbbb בערך שהוגדר לו - 'c'.
אחרי שהפרי-קומפיילר עושה את העבודה שלו, הקוד הזה יוגש לקומפיילר עצמו
וכמובן שאין סיכוי שהטקסט הזה לא ידפק באנגלית-עברית, אז תפענח מה כתוב חח.
נערך לאחרונה ע"י Dragonion בתאריך 19-02-2009 בשעה 14:41.
|