یکشنبه ۲۰ مرداد ۱۳۹۲ ارسال شده توسط prodo
استفاده از `size_t` حداقل به دو دلیل مفید هست.
۱) خوانایی برنامه رو بالا میبره. وقتی که شما قسمتی از یه کد رو ببینین که از `size_t` استفاده میکنه سریع متوجه میشین که قراره این مقدار اندازهی یه چیزی باشه.
۲) قابلیت حمل برنامه رو افزایش میده. با `size_t` برنامهی شما در کامپایلرها و سیستمهای مختلف به خوبی کار میکنه در صورتی که اگه از `int` استفاده کنین و در یه سیستم دیگه برای اندازه از `long` استفاده بشه، حداقل شما تبدیل اضافی رو به دست میآرین که خوب نیست.
یکشنبه ۲۰ مرداد ۱۳۹۲ ویرایش شده توسط prodo
استفاده از `size_t` حداقل به دو دلیل مفید هست.
۱) خوانایی برنامه رو بالا میبره. وقتی که شما قسمتی از یه کد رو ببینین که از `size_t` استفاده میکنه سریع متوجه میشین که قراره این مقدار اندازهی یه چیزی باشه.
۲) قابلیت حمل برنامه رو افزایش میده. با `size_t` برنامهی شما در کامپایلرها و سیستمهای مختلف به خوبی کار میکنه در صورتی که اگه از `int` استفاده کنین و در یه سیستم دیگه برای اندازه از `long` استفاده بشه، حداقل شما تبدیل اضافی رو به دست میآرین که خوب نیست.
مثلاً فرض کنید در یک سیستم ۶۴ بیتی که `int` در اون ۳۲ بیت هست، شما برای نگهداری اندازهی `string` از `int` استفاده کنین.
string s;
int x = s.size();
یعنی نهایتاً `2^31` بیت (که در صورتی که بایت رو هشت بیتی در نظر بگیریم، `2^28` بایت). بنابراین اگه یه رشته طولش از این بزرگتر باشه برنامهی شما به مشکل میخوره. (این طول از لحاظ نظری در محیط ۶۴ بیتی ممکنه هرچند معمولاً اتفاق نمیافته).
اما `size_t` تضمین میکنه که اندازهی مورد نظر رو در هر محیطی حفظ کنه و حداقل اندازهی لازم رو داشته باشه. بنابراین در سیستم ۶۴ بیتی `size_t` معادل عدد صحیح ۶۴ بیتی تعریف میشه.