سؤال

وأحتاج بعض المساعدة على الأعلام المترجم في ج ++. أنا باستخدام المكتبة التي هو منفذ لينكس من ويندوز، والذي يجب أن يتم تجميعها مع العلم -malign المزدوج "، من أجل التوافق ل Win32". انها فهمت أن هذا يعني أنني على الاطلاق ترجمة التعليمات البرمجية الخاصة بي مع هذا العلم كذلك؟ ماذا عن المكتبات الأخرى المشتركة. لذا، لا أنها تكون معاد مع هذا العلم كذلك؟ إذا كان الأمر كذلك، هل هناك أي طريقة حول هذا؟

وأنا مبتدئ لينكس (ج ++)، وذلك على الرغم حاولت إعادة ترجمة كافة المكتبات أنا باستخدام لمشروعي، كان مجرد معقدة جدا بشكل متكرر العثور على مصدر لجميع المكتبات والمكتبات التي "إعادة على التابع، وكل شيء ترجمة.

وتحرير: شكرا على الأجوبة. بعض الخلفية: تتحكم هذه المكتبة التهيئة والوصول إلى الكاميرا الموصولة USB. المشكلة هي أنه بدون هذا العلم، أشياء غريبة تبدأ في الحدوث. على ما يبدو عشوائيا، وتهيئة الكاميرا تفشل، مع وجود أخطاء اتصال USB. أنا أيضا الحصول على نوع من الفساد الذاكرة من عدة ج سلاسل (CONST تشار *) التي هي على المكدس. في الأساس، وقبل أسميه تهيئة هذه الكاميرا، فإنها تشير إلى مسار الدليل. بعد التهيئة، يشيرون إلى سلسلة "لي". التي بالنسبة لي هو الخلط جدا.

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

المحلول

وأنت عادة لا تحتاج إلى ضبط المحاذاة التغيير لالمجمعين الحديثة. حتى لو مترجم سيتم تخزين سوميتينج محاذاتها، سيتم لم ينكسر البرنامج.

والمكان الوحيد الذي يمكن أن المطلوب هو وتراجع مرت بين لينكس ونسخة ويندوز من السياسات في ثنائي (عبر الملفات أو عن طريق الشبكة). ولكن في هذه الحالات استخدام pragma pack هو أفضل أسلوب.

تحديث: تتطلب السائقين أيضا الهياكل الثنائية أن يكون الشيء من قبل بت المساواة مع المواصفات.

نصائح أخرى

وهذا هو اسم علم عظيم! وأتساءل عما إذا كان هناك أيضا النفوذ -malign؟ لكن على محمل الجد ضوابط هذا العلم التحسين الطفيف:

<اقتباس فقرة>   

و-malign المزدوج

     

و-mno محاذاة المزدوج

     

ومراقبة ما إذا كانت محاذاة دول مجلس التعاون الخليجي مزدوجة، طويلة مزدوجة، ومنذ فترة طويلة   المتغيرات طويلة على اثنين من كلمة الحدود   أو كلمة واحدة boundary.Aligning مزدوج   المتغيرات على إرادة الحدود اثنين من كلمة   المنتجات codethat يدير أسرع بعض الشيء   على "بنتيوم" على حساب أكثر   الذاكرة.

وانه من غير المحتمل أن أيا من المكتبة أو التعليمات البرمجية يحتاج هذا العلم. بشكل عام، يجب أن لا يكون باستخدام أعلام تحكم المحاذاة، إلا إذا كنت تعرف بالضبط ما تقومون به. إذا لم تشعر بأنك بحاجة إلى استخدامها، راجع دليل مجلس التعاون الخليجي في http://gcc.gnu.org/onlinedocs .

وكان من الممكن أن يكون. إذا كان يتوقع أن رمز كومة لتكون محاذاة على الدخول، والشفرة لا تضمن ذلك، هناك مشكلة. الشيء نفسه ينطبق على كومة تخصيص الكائنات. إذا كنت تمر المؤشرات التي يجب أن تكون متسقة، ولكنها ليست، وهذا خطأ أيضا.

وفي الوقت نفسه، يمكن أن يكون ذلك وظائف واحد أو اثنين فقط تتطلب بعض المتغيرات لتكون متسقة، وأنه لم يكن يوما مشكلة بعد كل شيء. وسيكون جميلا لو يعطى الناس الوقت اللازم لفهم رمز أنها هي المسؤولة عن ولكن انا اعتقد ان هذا ليس كيف يعمل في العالم الحقيقي.

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