مجال المتغيرات في أردوينو

من موسوعة حسوب

تملك المتغيرات في لغة C، التي اشتقَّت لغة أردونيو منها، خاصيةً تدعى scope (مجال) تحدِّد مجال استعمال هذه المتغيرات ومن يمكنه الوصول إليها. هذا يختلف عن الإصدارات الحديثة للغاتٍ مثل BASIC التي يكون فيها المتغير عامًّا (global) دومًا.

المتغيرات العامة يمكن أن تراها جميع الدوال في البرنامج. من جهة أخرى، تكون المتغيرات المحلية (local variables) مرئية في الدالة التي عُرَّفت ضمنها فقط وغير متاحة للدوال الأخرى. في بيئة أردونيو IDE، أي متغيِّر يُعرَّف خارج دالةٍ (مثل الدالة setup()‎ والدالة loop()‎ وغيرهما) هو متغير عام.

عندما يصبح البرنامج كبيرًا ويزداد تعقيدًا، تكون المتغيرات المحليَّة مفيدةً أكثر من تلك العامة للتأكد من وصول دالة واحدة فقط إلى المتغيرات المعرَّفة ضمنها. يمنع هذا من حصول أخطاءٍ ناجمةٍ عن تعديل إحدى الدوال متغيراتٍ تستعملها دالة أخرى دون قصد.

إنَّه من المفيد التصريح عن متغيرات وإسناد قيمة إليها داخل الحلقات التكرارية مثل الحلقة for. هذا يمنع أي شيء خارج الحلقة من الوصول إلى هذا المتغير وتعديله.

أمثلة

int gPWMval;  // يمكن لأي دالة رؤية هذا المتغير والوصول إليه

void setup()
{
  // ...
}

void loop()
{
  int i;    // loop مرئي فقط ضمن الحلقة "i" المتغير
  float f;  // فقط loop مرئي أيضًا ضمن الحلقة  "f" المتغير
  // ...

  for (int j = 0; j <100; j++){
  // فقط for متاح ضمن الحلقة j المتغير
  }

}

انظر أيضًا

  • الكلمة المفتاحية const: هي اختصار للكلمة «ثابت» (constant)، وهي مقيِّدةٌ للمتغيرات التي تٌستعمَل معها، إذ تعدِّل سلوك المتغير لتجعله في وضع «القراءة فقط» (read-only).
  • الكلمة المفتاحية static: تُستعمَل عند إنشاء متغيرات مرئيَّة لدالةٍ واحدة فقط من أجل الحفاظ على محتواها بعد انتهاء تنفيذ تلك الدالة المستدعاة وحتى الاستدعاء التالي لها خلافًا للمتغيرات المحلية التي تُنشَأ وتدمَّر في كل مرة تُستدعَى فيها الدالة.
  • الكلمة المفتاحية volatile: تُستعمَل عادةً قبل نوع المتغير عند تعريفه لتوجيه المصرِّف إلى تحميل المتغير من الذاكرة RAM وليس من سجلات التخزين للذاكرة المؤقتة (الذاكرة flash) حيث تُخزَّن جميع متغيرات البرنامج.

مصادر