موصى به, 2021

اختيار المحرر

الفرق بين التعريف والإعلان

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

التعريف هو تلقائيا إعلان في معظم السيناريو. الآن دعونا نفهم الفرق بين التعريف والإعلان مع مخطط المقارنة المفصل.

رسم بياني للمقارنة

أساس للمقارنةفريفإعلان
الأساسيةيحدد القيمة المخزنة في المتغير أو الوظيفة أو الفصل.يحدد اسم ونوع المتغير ، الوظيفة ، الفصل ، إلخ.
تخصيص الذاكرةيحدثلا يحدث.
تكرارلا يمكن تعريف البيانات مرة أخرى إذا تم تعريفها بالفعل.إعادة الإعلان يمكن أن يكون من الممكن بسهولة.
نطاقيتم تحديد المدةالرؤية محددة

تعريف التعريف

يحدد التعريف الرمز أو البيانات المرتبطة باسم المتغير ، أو الوظيفة ، أو الطبقة ، أو إلى آخره. التعريف مطلوب بالضرورة بواسطة المحول البرمجي لتخصيص مساحة التخزين للكيان المعلن. عندما يتم تعريف متغير فإنه يحتفظ بكمية من الذاكرة تتكون من عدة بايت لهذا المتغير. تعريف الدالة ينتج رمز للدالة. يمكننا تعريف عنصر برنامج مرة واحدة فقط في أحد البرامج لأن التعريف هو محدد فريد لعنصر برنامج. يمكن أن تكون العلاقة بين التعريف والتعريف من أطراف لأطراف .

في بعض الحالات ، لا يمكن تعريف عنصر البرنامج ولكن يتم تعريفه ، على سبيل المثال عندما لا يتم استدعاء وظيفة أبدًا أو لا يتم استخدام عنوانه أبدًا حتى إذا تم الإعلان عنه. مثال آخر هو أنه لا يتم استخدام تعريف الفئة أثناء إعلانه.

تعريف الإعلان

يستخدم الإعلان لتحديد أسماء البرنامج مثل اسم المتغير ، الوظيفة ، مساحة الاسم ، الفصول ، إلخ. لا يمكن استخدام أي اسم في برنامج بدون إعلانه. يمكن الإعلان عن عناصر البرنامج عدة مرات ، على عكس التعريف. لا يمكن أن تتحقق إعلانات متعددة إلا عند إجراء إعلانات مختلفة باستخدام التنسيق نفسه. الإعلان هو وسيلة توفير الرؤية لعنصر البرنامج في منظور المترجمين.

يخدم الإعلان الغرض من التعريف ، فقط في حالات معينة لا يتم ذكر الشرط الوارد أدناه.

  • عندما يتم الإعلان عن عضو البيانات الثابت داخل تعريف فئة ، في هذه الحالة ، فإنه ليس إعلان. لأنه يقوم بإنشاء نسخة واحدة فقط لكافة كائنات الفئة ، وأعضاء البيانات الثابتة هم مكونات الكائنات من نوع الفئة المتوفرة.
  • إذا كان الإعلان هو عبارة typedef.
  • يتم تعريف متغير بدون هيئة مُهيئ أو دالة ولكن يتضمن محددات extern. ويشير إلى أن التعريف يمكن أن يكون للوظيفة الأخرى ويوفر اسم الربط الخارجي.
  • تصريح تعريف الفئة بدون تضمين تعريف مثل class T؛

عادة ، يتم الإعلان في نطاق . يحدد النطاق رؤية الاسم المعلن ومدة الكائن المحددة.

الاختلافات الرئيسية بين التعريف والإعلان

  1. يحدد تعريف عنصر البرنامج القيمة المرتبطة بهذا العنصر. من ناحية أخرى ، يحدد تعريف عنصر البرنامج اسمه ونوعه إلى المحول البرمجي.
  2. يحتفظ تعريف عنصر البرنامج بقدر من الذاكرة بينما لا يتضمن التعريف تخصيص الذاكرة.
  3. يمكن الإعلان عن عنصر البرنامج عدة مرات. وعلى العكس من ذلك ، يشتمل التعريف على مواصفة فريدة مع اسم عنصر البرنامج يمكن تمييزها بأي شفرة أو بيانات.
  4. يصف النطاق في التعريف مستوى الرؤية للمتغير ، الوظيفة ، الكائن ، الطبقة ، التعداد ، إلخ. وعلى النقيض ، في التعريف ، يتعلق النطاق بالمدة.

تعريف مثال

  • تعريف متغير بالإضافة إلى التعريف:
    int r = 10;
  • تعريف الدالة:
     int int (int x، int y) {int a؛ أ = س + ذ ؛ عودة } 

مثال إعلان

  • إعلان متغير:
    extern int r;
  • بيان الوظيفة:
    int add (int p1, int p2);

استنتاج

يتم استخدام عملية التعريف لجعل عنصر البرنامج مرئيًا للمترجم ، ولا يتطلب تخصيص الذاكرة. التعريف العكسي هو تصريح تخزين احتياطي ، وبكلمات بسيطة يحتفظ المحول البرمجي بمساحة الذاكرة للكيان المعلن.

Top