ملاحظة Bjarne Stroustrup بأن "استخدام unsigned بدلاً من int للحصول على بت واحد إضافي لتمثيل الأعداد الصحيحة الموجبة لا يعد فكرة جيدة على الإطلاق" أثار مخاوف بشأن قرار جعل size_t غير موقع.
في الأصل، تم إنشاء size_t بدون إشارة لاستيعاب البنيات ذات المؤشرات 16 بت، مثل أنظمة DOS. لمنع قيود حجم السلسلة، فرض معيار C ptrdiff_t، النظير الموقع لـ size_t، ليكون فعالاً 17 بت.
في حين أن هذه الأسباب التاريخية قد لا تزال قابلة للتطبيق في الأنظمة المدمجة، فهي أقل أهمية بالنسبة للبرمجة الحديثة 32 بت و64 بت. في هذه البيئات، لا توجد مزايا عملية لاستخدام الأنواع غير الموقعة للأرقام، ويمكن أن يؤدي استخدامها إلى أخطاء محتملة بسبب قواعد التحويل الضمنية C/C (على سبيل المثال، حيث string("Hi").length()
لم يكن القرار بجعل size_t غير موقع خطأ، بل كان اختيارًا عمليًا للأنظمة المحدودة في عصره. ومع ذلك، في ممارسات البرمجة الحديثة، يُنصح عمومًا بتقليل استخدام الأعداد الصحيحة غير الموقعة في الواجهات والأرقام، باستثناء ظروف محددة حيث تكون الطبيعة الوصفية الذاتية لـ typedef int MyType مفيدة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3