int8_t
دادهای هست که دقیقاً ۸ بیت حافظه میگیره. (دقت کنید ۸ بیت نه یک بایت). این داده برای استفادههایی پیاده شده که دقیقاً میخوان مطمئن باشن که ۸ بیت داده دارن. با کاراکتر، int
، byte
و اینها نمیشه این کار و کرد. چون مبنای حافظهگیری اینها بر مبنای بایت هست و بایت هم معلوم نیست حتماً ۸ بیت باشه.
مشکل این نوع داده اینه که در سیستمهایی امکان داره موجود نباشه. مثلاً در سیستمهای با ببایت ۹ بیتی.
int_least8_t
نوع دادهای هست که کوچکترین عدد صحیح ممکن که حداقل ۸ بیت باشه رو انتخاب میکنه. با توجه به این که char
یک بایت هست در بیشتر سیستمهایی که C++
قابل پیادهسازی هست این داده برابر char
خواهد بود.
int_fast8_t
پرسرعتترین دادهی صحیح از نظر کارایی هست که حداقل ۸ بیت داره. از این نظر که حداقل ۸ بیت داره با nit_least8_t
برابره اما یه تفاوتی داره.
فرض کنیم در سیستمی هستیم که ۳۲ بیتی با بایت ۸ بیتی هست. در این حالت int_least8_t
دقیقاً برابر char
است. اما int_fast8_t
برابر int
هست. چون در پردازندهی ۳۲ بیتی یک int
با ۳۲ بیت از هر دادهی صحیح دیگهای سریعتره.
هیچ پژوهش انسانی نمیتواند ادعای علمی بودن داشته باشد، مگر اینکه از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)