• 0

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

ما هو الفرق بين التعريف definition و بين الإعلان declaration في لغة السي بلس بلس، فهل هما نفس الشيء ؟ أم يوجد فرق بينهما ؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

الإعلان declaration يُعرف الشيء ويصف نوعه سواء كان كائن أو دالة، فالإعلان هو ما يحتاجه المترجم (compiler) للإشارة لذلك الشيء المعلن، أي أنه ببساطة في الإعلان يتم حجز مكان لكائن أو دالة.
أمثلة على الإعلانات:

extern int ba;
extern int g(int, int);
double f(int, double); // extern can be omitted for function declarations
class foo; // no extern allowed for type declarations

أما  التعريف definition فهو الكائن أو الدالة نفسها، أي أنه تعريف القيمة بالنسبة للمتغيرات والتعليمات البرمجية بالنسبة للدوال، وهذا ما يحتاجه الرابط (linker) لربط المراجع للكيانات.
هذه هي التعريفات الموافقة للإعلانات المذكورة أعلاه:

int ba;
int g(int lhs, int rhs) {return lhs*rhs;}
double f(int i, double d) {return i+d;}
class foo {};

يذكر أنه يمكنك استخدام التعريف في مكان الإعلان.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن