PDA

View Full Version : کاربرد size_t



C3phalex1n_0x
سه شنبه 31 تیر 1393, 20:26 عصر
سلام، کسی می تونه توضیح بده که size_t در چه مواقعی مورد استفاده قرار می گیرد و واقعا چیست؟

rahnema1
سه شنبه 31 تیر 1393, 21:27 عصر
حداقل از زمان استاندارد ANSI C مورد استفاده بوده.
یک نوع عدد صحیح بدون علامت هست که قادر باشه سایز هر شیئی که مد نظر ما باشه را توی خودش نگه داره
ممکنه یک کامپایلر نوع size_t را این طور تعریف کنه
typedef unsigned int size_t
در هر صورت هر کامپایلری می تونه واسه خودش یه تعریفی از size_t داشته باشه
نکته دیگه نتیجه عملگر sizeof روی یک عملوند عبارت از از اندازه اون عملوند به بایت نوعش هم از نوع size_t هست اون عملوند میتونه یک عبارت باشه یا یک نوع باشه

int a;
cout<< sizeof a;
cout<< sizeof(int);

kernel.programmer
سه شنبه 31 تیر 1393, 21:30 عصر
این توضیح



This type is used to represent the size of an object. Library functions that take or return sizes expect them to be of type or have the return type of size_t. Further, the most frequently used compiler-based operator sizeof should evaluate to a constant value that is compatible with size_t.


کل مطلب

http://stackoverflow.com/questions/2550774/what-is-size-t-in-c

C3phalex1n_0x
سه شنبه 31 تیر 1393, 21:47 عصر
مرسی که زحمت کشیدید و به این سوال پاسخ دادید، ولی اصل سوال من این بود که از size_t چه مواقعی استفاده می شود! در اصل می خواستم یک مثال Practical زده می شد.
با این حال خودم جستجو کردم و اینطور متوجه شدم، دستور size_t همانند sizeof است با این تفاوت که از نوع unsigned int است و از آن می توانیم برای بدست آوردن اندازه اشیاء (قسمتی از حافظه که دارای نوع داده ای می باشد) استفاده کنیم.

rahnema1
سه شنبه 31 تیر 1393, 21:50 عصر
مرسی که زحمت کشیدید و به این سوال پاسخ دادید، ولی اصل سوال من این بود که از size_t چه مواقعی استفاده می شود! در اصل می خواستم یک مثال Practical زده می شد.
با این حال خودم جستجو کردم و اینطور متوجه شدم، دستور size_t همانند sizeof است با این تفاوت که از نوع unsigned int است و از آن می توانیم برای بدست آوردن اندازه اشیاء (قسمتی از حافظه که دارای نوع داده ای می باشد) استفاده کنیم.

این اشتباهه. اصلا size_t دستور نیست. گفتم «نوع» هست. نتیجه عملگر sizeof از نوع size_t می باشد. اصلا شما هر جا رسیدید به size_t با اغماض بگید unsigned int

Coder#
سه شنبه 31 تیر 1393, 23:21 عصر
size_t مساویه با unsigned int که برای مقدارهای عددی مورد استفاده قرار می گیره.
به همون گونه که متغیری با نوع داده unsigned int اعلان می کنیم (مثال ;unsigned int x)، می تونیم متغیری با نوع داده size_t اعلان می کنیم، (مثال ;size_t x).

eshpilen
چهارشنبه 01 مرداد 1393, 09:53 صبح
در مواردی که میخوای یک اندازه/سایز رو معرفی کنی، بجای اینکه بنویسی unsigned int مینویسی size_t.
حداقل مزیتش هم اینه که خوانایی کد رو زیاد میکنه.