القياس والتوثيق
الذاكرة العيون حساب حجم البيانات جيم وجيم ++ الاتحادات
Table of Contents
إن فهم كيفية تخزين البيانات في الذاكرة أمر أساسي للبرمجة الفعالة في جيم وجيم ++. فالهيكلات والنقابات هي أنواع بيانات أساسية تؤثر على تصميم الذاكرة وحجمها.() وتوضح هذه المادة كيفية تخصيص الذاكرة لهذه الأنواع من البيانات وكيفية حساب أحجامها بدقة.
Memory Layout of Structures
والهيكلان في كل من جيم وجيم ++ هما مجموعة من المتغيرات، وربما من أنواع مختلفة، تجمع معا تحت اسم واحد، ويخصص المجمّع ذاكرة لهيكل من خلال وضع كل عضو في تسلسله، مع احتمال تمهيده لتلبية متطلبات المواءمة.
الحجم الكلي للهيكل هو مجموع أحجام أعضائها بالإضافة إلى أي رصيف مضاف للمواءمة، يضمن الإبطاء أن يبدأ كل عضو في عنوان مقسم حسب حجمه أو متطلبه للمواءمة.
Memory Layout of Unions
وتشبه النقابات الهياكل، ولكنها تختلف في تخصيص الذاكرة، ويتقاسم جميع أعضاء الاتحاد نفس حيز الذاكرة، الذي يعادل حجم أكبر عضو فيه، ويتيح هذا المجال لتعدد أنواع البيانات أن تشغل نفس موقع الذاكرة.
ويحدد أكبر عضو في الاتحاد حجم الاتحاد، بالإضافة إلى إمكانية منحه للمواءمة، ويؤثر الكتابة على أحد الأعضاء في بيانات الأعضاء الآخرين، ولذلك تستخدم النقابات لتقاسم البيانات بكفاءة الذاكرة.
مقياس البيانات المحسوب
ويشمل حساب حجم الهياكل والنقابات تلخيص أحجام فرادى الأعضاء والنظر في الرعي للمواءمة.() ويوفر عامل في C وC+ الحجم الإجمالي في البوابات.
For example, consider a structure with an and a ]. The size of the structure depends on the size of ], the size of , and the padding added for alignment. Similarly, the size of a union is the size of its largest member.
- Use ]sizeof] to determine total size.
- النظر في متطلبات المواءمة لكل عضو.
- حساب الرعي الذي أضافه المجمّع
- تذكروا أن الاتحادات تشارك جميع الأعضاء في الذاكرة.