سؤال

توفر وظائف Win32 المتشابكة ميكانيا للتشغيل الذري على البيانات. من المفترض أن تكون آمنة وخيط آمنة متعددة المعالجات.

ماذا يحدث إذا كانت البيانات غير محاذاة؟ العمليات المتشابكة لا تزال ذرية؟ السابقين: زيادة عدد صحيح غير محاذاة.

طن

هل كانت مفيدة؟

المحلول

إذا قرأت معظم وظائف API المتشابكة، فهناك ملاحظات تحدد شيئا ما على غرار:

"يجب محاذاة المتغير المدبأ حسب المعلمة الإضافة على حدود 32 بت؛ خلاف ذلك، سوف تتصرف هذه الوظيفة بشكل غير متوقع على أنظمة X86 متعددة المعالجات وأي أنظمة غير X86. انظر _aligned_malloc".

للحصول على مثال، انظر هذا MSDN Doc..

هذا يقول أساسا أنك بحاجة إلى محاذاة بياناتك للحصول على النتائج المناسبة، باستخدام _aligned_malloc.

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