كثيرًا ما نواجه أنواعًا من البيانات مثل كثافة العمليات , يطفو ، و شار عند البرمجة في C. ومع ذلك، size_t هو نوع بيانات يستخدم بشكل متكرر في برامج C ولكنه أقل شهرة. في منشور المدونة هذا، سوف نتناول ذلك size_t's تعريف، بناء الجملة ، و مثال مع الإخراج لإظهار كيفية استخدامه.
مكتبة C القياسية stddef.h يحدد ملف الرأس نوع البيانات الصحيحة غير الموقعة size_t . يتم استخدامه بشكل متكرر ل ذاكرة توزيع و التلاعب العازلة ويستخدم للتعبير عن حجم الكائن بالبايت. يتم ضمان الحد الأقصى لحجم كل كائن يمكن تخصيصه في ذاكرة نظام معين من خلال نوع البيانات size_t .
بناء جملة size_t
بناء الجملة size_t على النحو التالي:
size_t variable;
أ متغير size_t تم الإعلان عن استخدام size_t الكلمة الرئيسية. يمكن استخدام المتغير لتخزين حجم الكائن وقد تم إعطاؤه الاسم اسم المتغير .
مثال على استخدام size_t
في هذا الرسم التوضيحي، سوف نستخدم size_t لتحديد حجم المصفوفة وطباعتها على وحدة التحكم.
#include #include int main() { int array[] = {1, 2, 3, 4, 5}; size_t s =sizeof(array) / sizeof(array[0]); printf('Size of array: %zu ', s); return 0; }
انتاج:
يجب أن يظهر الإخراج التالي في وحدة التحكم عندما نقوم بتشغيل هذا البرنامج:
Size of array: 5
ال متغير الحجم قيمة ال 5 ، والذي يتوافق مع عدد العناصر في المصفوفة، تتم الإشارة إليه بواسطة هذا الإخراج.
توضيح:
CSS النص الغامق
في هذا البرنامج نعلن أولاً عن أ مصفوفة أعداد صحيحة مكونة من خمسة عناصر . بعد ذلك، يتم تحديد حجم المصفوفة بالبايت من خلال الإعلان عن a متغير size_t مع ال حجم المشغل . منذ حجم المشغل بإرجاع الحجم الإجمالي للمصفوفة بالبايت، ونقسمه على حجم عنصر واحد (في هذه الحالة، an كثافة العمليات ) لتحديد العدد الإجمالي للعناصر في المصفوفة.
بعد ذلك، تتم طباعة حجم المصفوفة على وحدة التحكم باستخدام الملف printf وظيفة. ال size_t تتم طباعة قيمة النوع للحجم باستخدام ٪ل محدد التنسيق
فضلاً عن ذلك، size_t يتم دمجها بشكل متكرر مع أنواع بيانات C الإضافية وعمليات مثل malloc , calloc , إعادة تخصيص ، و سترلين . هؤلاء المهام و أنواع البيانات يعتمد على size_t لتخصيص وإدارة الذاكرة بشكل فعال في البرنامج.
jbutton
على سبيل المثال، الوسيطة المقدمة إلى وظيفة مالوك هو من النوع size_t ويمثل عدد البايتات التي سيتم تخصيصها عند استخدام الوظيفة لتخصيص الذاكرة ديناميكيًا. قيمة الإرجاع من سترلين الوظيفة أيضًا من النوع size_t ويمثل عدد أحرف السلسلة، والذي يحدد طول السلسلة.
خلط وقعت و غير موقعة الأرقام عند العمل مع size_t هي مشكلة شائعة يمكن أن تؤدي إلى سلوك وأخطاء غير متوقعة في البرنامج. عند التعامل مع أحجام الكائنات، من المهم الاستفادة منها دائمًا size_t للتأكد من أن البرنامج يقوم بتخصيص الذاكرة ومعالجتها بشكل صحيح.
ومن الأهمية بمكان أن نتذكر ذلك size_t's يمكن أن يتغير الحجم الدقيق بناءً على بنية النظام والمترجم المستخدم. على نظام 32 بت , size_t عادة ما يعادل عدد صحيح طويل غير موقع ، وعلى أ نظام 64 بت ، وهو يعادل عددًا صحيحًا طويلًا غير موقّع. من الضروري مراجعة وثائق النظام والتأكد من استخدام نوع البيانات المناسب لأحجام الكائنات لمنع أي مشاكل تتعلق بتجاوز الأعداد الصحيحة.
خاتمة:
في الختام، size_t يمثل نوع البيانات الأساسي في لغة البرمجة C حجم الكائن بالبايت. يتم استخدامه بشكل متكرر لتخصيص مقدار الذاكرة اللازم لكائن ما مع إجراءات تخصيص الذاكرة مثل malloc , calloc ، و إعادة تخصيص .
واحدة من الفوائد الرئيسية للتبني هو ذلك size_t يقدم طريقة متسقة للتعبير عن أحجام الكائنات عبر العديد من الأنظمة الأساسية والمترجمين. عند العمل مع المبرمجين، يجب أن تكون قابلة للتحويل بين أنظمة التشغيل المختلفة.
قدرة size_t للمساعدة في منع مشاكل مثل عدد صحيح تجاوز و التدفق السفلي والتي يمكن أن تؤدي إلى أخطاء في الوصول إلى الذاكرة ومشاكل أخرى، هي ميزة أخرى مهمة. يمكن للمبرمجين إنشاء مبرمجين أكثر موثوقية وأمانًا من خلال إدارة أحجام الكائنات باستخدام size_t .
كل الأشياء تم اعتبارها، size_t هي أداة حاسمة لمبرمجي C. من خلال استيعاب بناء الجملة والتطبيق المناسب، يمكن للمبرمجين تطوير تعليمات برمجية أكثر فعالية ويمكن الاعتماد عليها وخالية من الأخطاء عند العمل مع أحجام الكائنات.