Arduino/define

من موسوعة حسوب
< Arduino
مراجعة 08:17، 9 أكتوبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (أنشأ الصفحة ب'التعبير ‎<code>#define</code> هو أحد العناصر المفيدة في C، إذ يسمح بإعطاء اسمٍ لقيمةٍ ثابتةٍ قبل أن يُ...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

التعبير ‎#define هو أحد العناصر المفيدة في C، إذ يسمح بإعطاء اسمٍ لقيمةٍ ثابتةٍ قبل أن يُفسَّر البرنامج. الثوابت المعرَّفة باستعمال هذا التعبير في أردوينو لا تحتل أيَّة مساحةٍ من ذاكرة البرنامج على الشريحة (chip). سيبدل المفسِّر (compiler) القيمة المعرَّفة مكان المراجع التي تشير إلى هذه الثوابت أثناء عملية تصريف الشيفرة.

انتبه إلى أنَّ استعمال التعبير ‎#define في تعريف الثوابت كما ذُكِر آنفًا له آثار جانبية غير مرغوبة مثل استعمال اسم ثابت عُرِّف في ‎#define مع اسم ثابت أو متغير آخر؛ في هذه الحالة، سيُستبدَل باسم الثابت المعرَّف عبر ‎#define القيمة المعطاة أينما وُجد في الشيفرة وهذا سيؤدي إلى أخطاء عند تنفيذها.

عمومًا، يفضل استعمال الكلمة const المفتاحية لتعريف الثوابت التي يستعاض بها عن استعمال ‎#define.

البنية العامة

#define constantName value

لا تنسَ إضافة الرمز # لأنه ضروري.

أمثلة

مثالٌ على استعمال التعبير ‎#define لتسمية أسماء الأرجل المراد استعمالها عوضًا عن استعمال القيم العددية لها:

#define ledPin 3
// أينما ذكرت أثناء تفسير الشيفرة ledPin سيبدل المفسر القيمة 3 مكان الكلمة

ملاحظات وتحذيرات

لاحظ أنه لا يوجد فاصلة منقوطة في نهاية نهاية التعبير ‎#define. إن وضعت واحدة، سيرمي المفسِّر أخطاء مبهمة أثناء تفسير الشيفرة وإرسالها إلى اللوحة.

#define ledPin 3;    // سيرمي هذا خطأً

بشكل مشابه، إضافة إشارة تساوي بين اسم الثابت وقيمته في التعبير ‎#define سيرمي خطأً مبهمًا أثناء تصريف الشيفرة وكتابتها على اللوحة.

#define ledPin  = 3  // سيرمي هذا خطأً

انظر أيضًا

  • التعبير ‎#include:
  • الكلمة المفتاحية const:
  • الرمز ;:
  • الأقواس {}:
  • استعمال التعليقات الكتلية في أردوينو.
  • استعمال التعليقات السطرية في أردوينو.
  • الثوابت في أردوينو.

مصادر