این یعنی اگر مقدار چیزی غیر از 10 باشه
ارور میده
اون چیزی که جلوی اروره پیامیه که نمایش داده میشه
#undef
از بین بردن یک تعریف که از قبل تعریف شده
مثال
#define L
#ifndef L
#error L is not defined
#endif // L
#undef L
#ifndef L
#error L is not defined
#endif // L
در ارور دوم ارور میده
چرا؟
چون
L
تعریفش رو پاک کردیم
اما بعدش اون رو از بین بردیم
همونطور که قبلا گفتم کد از بالا به پایین کامپایل میشه
یه مثال دیگه
#define L 10
#if L==10
void a(){cout«"hello a!"«endl;}
#endif // L
#undef L
#define L 20
#if L==20
void b(){cout«"hello b!"«endl;}
#endif // L
در مثال بالا هر دو کامپایل میشن
نکته
اون
undef
رو هم نذارید فرقی نمیکنه
ولی اگه
#define L 10
#if L==10
void a(){cout«"hello a!"«endl;}
#endif // L
#undef L
#ifndef L
void b(){cout«"hello b!"«endl;}
#endif // L
تو مثال بالا برای قسمت دوم وجودش مهمه
این یه آموزش ساده از تعدادی از دستورات پیش پردازنده بود
ارور میده
اون چیزی که جلوی اروره پیامیه که نمایش داده میشه
#undef
از بین بردن یک تعریف که از قبل تعریف شده
مثال
#define L
#ifndef L
#error L is not defined
#endif // L
#undef L
#ifndef L
#error L is not defined
#endif // L
در ارور دوم ارور میده
چرا؟
چون
L
تعریفش رو پاک کردیم
اما بعدش اون رو از بین بردیم
همونطور که قبلا گفتم کد از بالا به پایین کامپایل میشه
یه مثال دیگه
#define L 10
#if L==10
void a(){cout«"hello a!"«endl;}
#endif // L
#undef L
#define L 20
#if L==20
void b(){cout«"hello b!"«endl;}
#endif // L
در مثال بالا هر دو کامپایل میشن
نکته
اون
undef
رو هم نذارید فرقی نمیکنه
ولی اگه
#define L 10
#if L==10
void a(){cout«"hello a!"«endl;}
#endif // L
#undef L
#ifndef L
void b(){cout«"hello b!"«endl;}
#endif // L
تو مثال بالا برای قسمت دوم وجودش مهمه
این یه آموزش ساده از تعدادی از دستورات پیش پردازنده بود