تحويل المؤشرات الفارغة إلى مؤشرات دالة في لغة C
تحويل المؤشرات الفارغة التي يتم إرجاعها بواسطة وظائف مثل dlsym() إلى مؤشرات وظيفية ليس أمرًا سهلاً في لغة C . بشكل افتراضي، هذا الإرسال المباشر محظور في C 98/03.
في C 98/03، كانت مؤشرات الفراغ * مخصصة للإشارة إلى الكائنات، ليست دالة أو مؤشرات أعضاء.
الدعم المشروط في C 0x في C 0x، يتم دعم صب الفراغ * إلى مؤشرات الوظيفة بشكل اختياري من خلال التطبيقات. إذا كان مدعومًا، يجب أن يتوافق السلوك مع المعيار.
الحلول المعتمدة على التنفيذ
على الرغم من عدم السماح بالإرسال المباشر، إلا أن هذه الحلول قد تعمل على معظم الأنظمة الأساسية:
fptr my_fptr = reinterpret_cast(reinterpret_cast(gptr));
إعادة التفسير المتغير:fptr my_ptr = 0;
reinterpret_cast(my_ptr) = gptr;
ملاحظة تحذيرية
تتضمن هذه الحلول سلوكًا غير محدد ويجب استخدامها بحذر.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3