الثوابت في لغة سي
الثوابت ( Constants ) هي عبارة عن قيمة ثابتة و لا يمكن تغييرها بعد تعريفها في البرنامج و لا تتغير قيمتها طوال فترة تنفيذ البرنامج, و الثابت هو أشبه بذاكرة القراءة فقط و هذه القيمة للقراءة فقط, تكون الثوابت من نوع "عدد، حرف، نص أي int ,float ,char".
الإعلان عن الثوابت في لغة سي
توجد طريقتين للإعلان عن الثوابت وهما:
الطريقة الأولى : هي بإضافة الكلمة #define للتعريف قبل الدالة الرئيسية.
#define int 101
مثال 1
#include<stdio.h> #define num 7 main() { printf("%d" ,num); }
في هذا المثال قُمنا بالإعلان عن الثابت بواسطة #define num 7 ثم قمنا بكتابة الدالة printf من أجل الطباعة و وضعنا %d من أجل أننا نريد أن نطبَع رقم و ليس حرف أو عدد عشري ثم كتبنا num هي التي قُمنا بالإعلان عن الثابت عن طريقها, و عند تشغيل الكود سوف يطبَع لنا الرقم 7.
الطريقة الثانية : هي قريبة من الإعلان عن المتغير و لكن الفرق هو بإضافة كلمة const يعني ثابت قبل الإعلان كما في المثال التالي :
#include<stdio.h> main() { const int n=7; printf("%d" ,n); }
عرَّفنا الثابت عن طريق كتابة الدالة const ثم كتبنا int ليكون هذا الثابت عدد صحيح وهو n و قيمته هي 7. و قمنا بكتابة الدالة printf من أجل الطباعة و وضعنا %d من أجل أننا نريد أن نطبع رقم و ليس حرف أو عدد عشري و كتبنا n الذي هو الثابت, و عند تشغيل هذا الكود سوف يطبع قيمة الثابت وهي 7.
مقارنة بين المتغيرات و الثوابت
فيما يلي سوف نتعرف على الفروقات بين المتغيرات variables و الثوابت Constants و سنرفق أمثلة توضح هذه الفروقات.
المتغيرات variables في لغة سي
يمكن تغير قيمتها أثناء عمل البرنامج بعكس الثوابت في المثال التالي سوف نوضح هذا الأمر.
#include<stdio.h> main(){ int db=1; printf("%d" ,db); db=2; printf("%d" ,db); }
نلاحظ بأن المتغير الذي يملك الإسم db من نوع int قُمنا بإعطاءه قيمتين و هما الأولى 1 و قلنا له إطبعها و أعطيناه القيمه الثانية و هي 2 و قلنا له إطبعها فسيكون ناتج هذه العملية هي 12 يعني رقم 1 و رقم 2 طبعهم على نفس السطر لأننا لم نقم بالنزول سطر بواسطة \n.
الثوابت Const في لغة سي
لنقم بنفس الحركة التي في المثال السابق و نرى كيف سيكون الناتج في هذه الحالة
#include<stdio.h> main(){ const int db=1; printf("%d" ,db); db=2; printf("%d" ,db); }
الناتج عند التنفيذ قام بطباعة خطأ Error
التعليقات Comments في لغة C
التعليقات ( Comments ) هي مجموعة من سلاسل نصية بالإضافة لأرقام، أحرف، رموز تكتب لتوضيح الأوامر في البرنامج المصدر و يقوم المترجم بتجاهلها و لا تتنفذ في الكود, و يكتب التعليق بإضافة رمزين مائلات // ثم بعدها نقوم بكتابة التعليق الذي نريده و تقسم التعليقات لنوعين و هما التعليقات بالنصوص الطويلة و التعليقات بالأسطر.
التعليقات بالأسطر
يتم كتابة التعليقات في سطر واحد بكتابة إشارتين سلاش بجانب بعضهم // و كتابة التعليق بعدها كما بالكود الآتي.
//My First Program //Nusur Tech #include<stdio.h> main(){ printf("Nusur_Tech"); }
أما إذا كتبنا كلام بدون وضع إشارة السلاش // مرتين فهذا لا يٌعتبَر تعليق و المحرر سوف يعتبره خطأ برمجي و يضع لنا إشارة بجانبه.
التعليقات بالنصوص الطويلة
يتم هذا النوع من التعليقات Comments عبر كتابة رمز السلاش و ثم النجمة /* ثم كتابة التعليق الذي نُريده بأسطر. متعددة ثم في النهاية نقفلهُ برمز النجمة ثم سلاش */ و هنا يَدِل على إنتهاء كتابة التعليق أو الملاحظة.
/* My First Program Nusur Tech */ #include<stdio.h> main(){ printf("Nusur_Tech"); }
كما نلاحظ أنه ما بين /* و */ يُعتبر ملاحظة و لا يتم قراءتها من قبل مترجم اللغة أو المفسر.