يتعارض مع المحول البرمجي x86

أنواع بيانات التي يزيد حجمها عن 4 وحدات البايت لا تلقائياً متواجهان في بنية تخزين العناصر عند استخدام x86 المترجم التحويل البرمجي لتطبيق. نظراً لأن البنية للمحول البرمجي x 86 هو وحدات البايت 4 محاذاة بنية تخزين العناصر anything بقعة صغيرة من 4 وحدات البايت, على سبيل المثال، عدد صحيح 64 بت، لا يتم محاذاة تلقائياً إلى عنوان بريد 8 وحدات البايت.

العمل مع بيانات unaligned له تبعاته الثاني.

  • قد يستغرق أطول للوصول إلى مواقع? unaligned من اللازم للوصول إلى مواقع? تمت محاذاته.

  • لا يمكن استخدام مواقع? unaligned في العمليات interlocked.

إذا كنت بحاجة أكثر المحاذاة الصارمة، استخدم __declspec(align(N)) on your variable declarations. يؤدي هذا المحول البرمجي إلى محاذاة بنية تخزين العناصر بشكل حيوي إلى تفي بالمواصفات الخاصة بك. ومع ذلك، قد يؤدي حيويا ضبط بنية تخزين العناصر في وقت التشغيل أبطأ تنفيذ تطبيق الخاص بك.

راجع أيضًا:

المرجع

الأنواع والتخزين

align (C++)