سؤال

وكيف المحمولة هي ضعف الربط؟

#pragma weak my_symbol

وأنا أرى أن السؤال: -كيفية إلى جعل weak- ربط العمل مع دول مجلس التعاون الخليجي يناقش كيفية الحصول على عمل. ولكن هناك وسيلة جيدة للقيام بذلك مثل أن دول مجلس التعاون الخليجي غير مطلوب؟

ما هو الفرق بين ضعف ربط وحراسة declartion مع #IFDEF؟

#ifndef my_weak_fn
    void my_weak_fn(){/* Do nothing */ return;}
#endif
هل كانت مفيدة؟

المحلول

و#pragma هو، بحكم التعريف، <م> لا المحمولة.

ويتم ربط ضعيفة في وقت الارتباط (المدهش). انها تسمح وظيفة (أو أي رمز، حقا) مع نفس التوقيع لتجاوز آخر. وهذا يعني وسيتم اختيار واحدة قوية في تفضيل المؤمن الضعيف، ولكن اذا لم يكن هناك واحد قوي، وسوف تستخدم المؤمن الضعيف.

وتشمل تتم الحراس من قبل المجمع، وليس رابط، ويفعلون <م> لا السماح للتراجع إلى واحدة ضعيفة إذا كان واحد قوي ليس هناك. يمكنك محاكاة نفس السلوك إذا يمكنك التحكم في مصدر لكل من وظائف (عن طريق ifdef جي لأحد، للطرف الآخر جي ifndef) ولكن هذا ليس هو الحال دائما، وهذا هو أكثر الاختيار بين وظيفتين قوية.

وربط ضعف يسمح لك أن تفعل أشياء مثل قطرة في malloc()/free() بنفسك لأغراض التصحيح في حين لا يزال ربط مع المكتبة التي توفر لهم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top