أهلا ومرحبا بكم مرة أخرى. في هذه المحاضرة أريد أن أتحدث عن الأوتار الثابتة.
نعلم أن السلسلة الحرفية أو ثابت السلسلة موجود داخل علامتي اقتباس مزدوجتين.
ولكن ماذا عن المتغير نفسه. كيف يمكنك التأكد من أن المتغير لا
يمكنه تغيير هذه القيمة أبدًا؟
يشار إلى هذا على أنه ثابت. لذا فإن السلسلة الثابتة
ضرورية أحيانًا في برنامجك حيث لا
تريد تغيير قيم المتغيرات الخاصة بك أبدًا.
لذلك على سبيل المثال ، إذا قمنا بإنشاء محيط لبعض العمليات الحسابية
، فسنقوم بعمل 3. 14159 مرة قطرها.
3. 14159 ثابت. لا يتغير ابدا.
إنه يمثل pi.
لذلك سيكون من الرائع حقًا أن نستخدم متغيرًا بدلًا من استخدام
هذا الرقم السحري ونتأكد من أن هذا المتغير لا يتغير أبدًا.
لذلك هناك أسباب وجيهة
لاستخدام ثابت رمزي بدلاً من مجرد كتابة الرقم في كل مرة.
أولاً ، يخبرك الاسم أكثر بكثير مما يخبرك الرقم.
مملوكة يساوي 0. 015 مرة من قيمة المنزل أقل جدوى
من القيمة المستحقة التي تساوي معدل الضريبة مضروبًا في القيمة.
لذلك نريد أن يكون لدينا أسماء متغيرة تمثل
أرقامًا لا تتغير أبدًا.
إذا قرأت من خلال برنامج طويل ، فإن
معنى نسخة الرؤية الثانية يكون أكثر وضوحا.
من الأسهل كثيرًا النظر إلى هذا الرمز وفهم ذلك 0. يمثل 015 معدل الضريبة.
لنفترض أنك استخدمت ثابتًا في عدة أماكن
وأصبح من الضروري تغيير قيمته ، فسيتعين
عليك تغيير هذه القيمة في كل مكان في البرنامج بدلاً من
مجرد التغيير في مكان واحد حيث تحدد هذا الثابت.
لقد تحدثت عن هذا في وقت سابق عندما أستخدم مصطلح الأرقام السحرية.
هذا ما يشار إليه هذا.
عندما ترى رقمًا مستخدمًا في برنامج لا يتم تخزينه في
متغير ، فمن الأفضل عادةً إنشاء هذا الرقم ووضعه في ثابت.
لأنه إذا استخدمته عدة مرات وتغير هذا المتغير
، فكل ما عليك فعله هو تغييره مرة
واحدة. ليس عليك تغييره في كل مكان تستخدمه فيه.
لذا تجنب الأرقام السحرية ، استخدم الثوابت.
إحدى الطرق التي يمكنك من خلالها تحديد ثابت في c هي أنه يمكنك استخدامها
لتحديد توجيه المعالج المسبق.
لذا فإن توجيه المعالج المسبق هذا يتيح لك تحديد الثوابت
، وقد استخدمته بالفعل في برنامجين. أحاول الآن المساعدة في شرح ذلك.
لذلك إذا أردت تحديد معدل ضرائب وكان ثابتًا
، يمكنك تحديد التحديد بعلامة الجنيه قبل ذلك.
نعلم أنه توجيه للمعالج المسبق بسبب علامة
الجنيه ، ثم نقول الاسم ثم القيمة.
عندما يتم تجميع البرنامج الخاص بك ، القيمة 0. سيتم استبدال 015 في كل
مكان استخدمت فيه معدل الضريبة ، تمامًا مثل المتغير
ولكنه في الواقع ليس متغيرًا.
لا يمكنك تعيين أي قيم أخرى لذلك.
إذا كان متغيرًا ، فستتمكن من تعيين البيانات
إليه ، ولكن ليس في هذه الحالة لأنه معالج مسبق.
لذا فإن توجيهات المعالج تنص على أنه لا يمكنك تعيين البيانات
وأنك تحدد ذلك باستخدام التعريف.
لذا لاحظ بناء الجملة الخاص بهذا. لديك رمز الجنيه متبوعًا بكلمة رئيسية محددة.
وبعد ذلك ، لديك اسمك.
نحن لا نستخدم أي عوامل تعيين.
لدينا فقط اسمنا ثم المساحة ثم القيمة.
لذلك لتعيين قيمة لهذا التعريف ، كل ما تحتاجه هو مساحة.
لا توجد فاصلة منقوطة في النهاية. إنه ليس بيان. إنه محدد للغاية.
إذن ما يحدث هنا هو أن هناك استبدال وقت تجميع يحدث لهذه
المعالجات المسبقة. يعمل المعالج المسبق قبل أن يتذكر المترجم.
المعالج المسبق سوف يعمل وسيشاهد هذه الجذور الحاملة المحددة. وبعد ذلك في كل مكان ترى فيه معدل
الضريبة ، ستضع 0. 015 للمترجم.
يمكن أن تظهر العبارات المعرفة في أي مكان في البرنامج.
لا يوجد شيء اسمه تعريف محلي. بمجرد أن يكون لديك تعريف ، يمكن لأي
شخص استخدامه.
الآن أفضل ممارسة أو اصطلاح هو وضع العبارات المحددة
في بداية البرنامج أو داخل ملف التضمين
إذا كنت تريد المشاركة في أكثر من ملف مصدر
واحد ولكن ليس عليك القيام بذلك.
نظرًا لأنه يعمل على المعالج المسبق ، فإنه
لا يحتوي على أي نطاق ، ولا يحتوي على أي نطاق محلي أو عالمي.
يمكنك وضعها في أي مكان. ويمكنك رؤيته في أي مكان في البرنامج
، حتى لو تم استخدامه قبل تعريفه.
تعتبر العبارات المحددة جيدة أيضًا لأنها تساعد في جعل برامجك أكثر قابلية للنقل.
في بعض الأحيان ، يمكنك استخدام عبارة محددة وربطها بجهاز كمبيوتر معين تعمل عليه
أثناء تشغيل البرنامج ، وستحصل على هذه القيمة بالذات.
يمكن أيضًا استخدام العبارة المحددة للأحرف وثوابت السلسلة ،
وليس فقط للأرقام. إذا أردنا أن نفعل شيئًا كهذا ، فهذا صحيح تمامًا.
ما عليك سوى إرفاق الأحرف المفردة داخل اقتباس واحد.
وإذا كنت تريد بالفعل وضع سلسلة حرفية كاملة ، فعليك
وضعها بين علامتي اقتباس. وهذا ما يفعله هذا عفواً.
طريقة أخرى يمكنك من خلالها إنشاء الثوابت والاطلاع
على آلية أحدث. أضافت C90 طريقة أخرى بشكل أساسي
وهي توفير معدل ثابت.
يمكنك استخدام الكلمة الأساسية الثابتة لتحويل تصريح لمتغير إلى إعلان عن ثابت.
وهذا سيسمح لك بعدم القدرة على تغيير هذا المتغير. لذلك كل ما عليك فعله هو أن تقول
const ثم اسم نوع البيانات ثم اسم المتغير.
وما يفعله هذا في هذا المثال هو جعل الشهور الآن ثابتًا رمزيًا لـ 12.
نحن لا نسميها متغيرًا لأن المتغير يمكن أن يتغير ،
ولهذا السبب يطلق عليه متغير.
لديك ثوابت أو متغيرات والثابت
بالأشهر ليس متغيرًا ، لا يتغير.
ثابت يجعل الأشهر في قيمة للقراءة فقط.
يمكنك عرض الشهور واستخدامها في العمليات الحسابية. لا يمكنك تغيير قيمة الأشهر.
لذا فإن الثوابت مهمة إذا كنت لا تريد تغيير البيانات ، ويمكنها
أيضًا استبدال الأرقام السحرية.
Const هي نهج أحدث وأكثر مرونة من استخدام تعريف.
يتيح لك التصريح عن نوع.
كما أن لديها تحكمًا أفضل في أي أجزاء من
البرنامج يمكنها استخدام الثابت.
لذلك يجب أن تستخدم الثابت كلما استطعت ، لكنك سترى الكثير من البرامج
التي تستخدم محددة لأنها كانت الآلية الأولى.
أيضًا ، هناك طريقة ثالثة لإنشاء ثابت ،
وهي باستخدام التعداد. تذكر ، تحدثنا عن التعداد.
Enums هي طريقة لإنشاء نوع متغير خاص
بك ، ولا ترتبط به إلا بيانات معينة. لا يمكنك تغيير قيمة التعداد.
بمجرد تحديد التعداد ، يجب أن يكون لديه تلك القيم.
يمكن أن يكون لها قيم مختلفة ، لكنها لا تزال
نوعًا من طريقة لإنشاء ثابت رمزي ، ليس طريقة كاملة ، ولكن نوعًا من الطريقة.
أيضًا ، باستخدام const ، يمكنك تهيئة مصفوفة أحرف وإعلانها ثابتة ، وهذه طريقة
جيدة للتعامل مع الرسائل القياسية.
لذلك إذا قلت أن رسالة const char تساوي نهاية العالم قريبة
، فسيتم إعلان الرسالة على أنها ثابتة ومحمية من أي تعديل
صريح في برنامجك. أي محاولة لتعديل الرسالة بعمل نسخة str
ستؤدي إلى ظهور رسالة خطأ من المترجم.
والآن يمكنك استخدام هذا لرسالة قياسية قد يتم عرضها
كإخراج في أجزاء مختلفة من البرنامج.
تعتبر تقنية تعريف الرسائل القياسية مفيدة بشكل خاص إذا تم استخدامها
في العديد من الأماكن ، كما ذكرت.
يمنع التعديل العرضي لمثل هذه الثوابت في أجزاء أخرى من البرنامج ، تمامًا
مثل الأرقام السحرية.
لذا فأنت تريد استخدام الثوابت في برنامجك
، طريقتان لتوظيفهما بشكل أساسي ، باستخدام تعريف واستخدام
الكلمة الأساسية الثابتة.
يرجى الانتباه إلى هذا.
قد ترى ذلك في بعض الأمثلة القادمة.
شكرًا لك.