Arduino/const
الكلمة const
المفتاحية هي اختصار للكلمة «ثابت» (constant)، وهي مقيِّدةٌ للمتغيرات التي تٌستعمَل معها، إذ تعدِّل سلوك المتغير لتجعله في وضع «القراءة فقط» (read-only). هذا يعني أنَّه يمكن استعمال المتغير بشكل ممثال للمتغيرات التي من نفس نوعه باستثناء عدم القدرة على تغيير القيمة التي أُسندَت إليه عند إنشائه. ستواجه خطأً من المُصرِّف إن حاولت إسناد قيمةٍ لمتغيرٍ استُعملَت الكلمة المفتاحية const
معه.
تمتثل الثوابت المعرَّفة باستعمال الكلمة المفتاحية const
لقواعد مجال المتغير (variable scoping) التي تضبط بقية المتغيرات. مع أخذ مخاطر استعمال استعمال define#
بالحسبان، إنَّ ذلك يجعل من الكلمة المفتاحية const
الطريقة الأمثل لتعريف الثوابت، ويفضل استعمالها بدلًا من define#
.
البنية العامة
const dataType var = val;
يمثِّل dataType
نوع المتغير المراد تعريفه، و var
اسم المتغير، و val
القيمة المراد إسنادها إلى هذا المتغير الثابت. انتبه إلى أنَّه متى ما أسندت القيمة val
إلى المتغير، لن يعد بالإمكان تغييرها وسيصبح المتغير للقراءة فقط.
أمثلة
استعمال الكلمة const
لتعريف الثابت π المستعمل في العمليات الرياضية:
const float pi = 3.14;
float x;
// ....
x = pi * 2; // تستعمل الثوابت كثيرًا في العمليات الرياضية
pi = 7; // سيولد هذا خطأً، إذ لا يمكن الكتابة على متغير ثابت
ملاحظات وتحذيرات
التعبير define#
أم الكلمة المفتاحية const
؟
يمكنك استعمال إمَّا الكلمة const
المفتاحية أو التعبير define#
لإنشاء ثوابت عددية أو نصية. أمَّا مع المصفوفات، فأنت بحاجة إلى استعمال const
معها فقط. عمومًا، استعمال الكلمة const
المفتاحية مفضَّلٌ على استعمال التعبير define#
.