حركات .. PreProcessor
القراءة من وثائق اللغة متعة حقيقية مع القليل من المعاناة :)
مصدر الأفكار في هذه المشاركة
سأكتب بعض الأكواد أدناه .. وإن كنت لا تعلم ماذا ستكون نتيجتها , فستستغرب قليلاً عندما تعرف
جرب الكود الذي يلفت نظرك .
#line 72 "\\\n\7"#error Hello World!
int main()
{
#if __LINE__!=3
#error Move This Block O_O
#endif
return 0;
}int main()
{
#line 3//without moving
#if __LINE__!=3
#error Move This Block O_O
#endif
return 0;
}#int main(){##}والآن .. إلى الضربة القاضية .. فكّر معي :
ما رأيك لو نعتمد على المحرر المفضل لديك .. ونقوم باختبار الأعداد الأولية بدون أن نترجم البرنامج :D وبدون أن ننشئ أي ملف تنفيذي :D وبدون أن نقوم بأي عملية Build مهما كانت !
فقط سأعتمد على اختيارك لأفضل المحررات مثلاً المحرر المستخدم visual studio 8 يقوم بتلوين العبارات المحققة عندما نستعمل الشرط if#
إذا قام المحرر الخاص بك في الكود التالي بتلوين العبارة Hello بالرمادي والعبارة World بلون زاهي .. فأنت على استعداد لخوض تجربة فريدة :
#if 0Hello#elseWorld#endifإن لم يتم تلوينها فلا بأس ستقوم بعمل Build للكود .. وسيصدر النتيجة كخطأ ..
هل أنت جاهز .. كل ما عليك فعله هو إنشاء مشروع جديد .. ملف C .. نسخ لصق ثم حفظ المشروع لا تنس الحفظ .
وانتظر قليلا ريثما يتم الانتهاء من التلوين .. أو اعمل Build إن لم يكن محررك ذكيا لهذه الدرجة .
واكتشف إمكانيات الكود بنفسك :D
#define Number 45
#define Test(x) ((Number>x)&&(Number%x!=0))
#if Number==2||Number==3||Number==5||Number==7||Number==11
#define isPrime YES
#endifً
#if Test(2)
#if Test(3)
#if Test(5)
#if Test(7)
#if Test(11)
#define isPrime YES
#else
#define DivisibleBy 11
#endif
#else
#define DivisibleBy 7
#endif
#else
#define DivisibleBy 5
#endif
#else
#define DivisibleBy 3
#endif
#else
#define DivisibleBy 2
#endif
#ifndef isPrime
#error not Prime
#else
#error Yes it's Prime
#endifبالتوفيق