我剛剛讀了這個鏈接。int8_t、int_least8_t和int_fast8_t的區別?現在我知道,int8_t正好是8位,而int_fast8_t是最快的int型別,至少有8位。
我是一個在 Linux 上使用 c 11 開發后端程式的開發人員。大多數時候,我不需要擔心我的行程的大小。但是我需要一直關注我的專案中整數的大小。例如,如果我想用一個int來存盤用戶的ID或者存盤一個毫秒時間點,我不能簡單地使用int,因為它可能導致溢位,我必須使用int32_t或者int64_t。
所以我在想,如果到處使用int_fast8_t,而不再使用int8_t(與int_fast32_t、int_fast64_t、uint_fast8_t等相同),是否是件好事。
好吧,使用int_fastN_t可能不會改變什么,因為我的程式總是被部署在X86或Arm64上。但是我還是想知道,如果我把所有的intN_t改成int_fastN_t,是否會有什么缺點。如果沒有任何缺點,我想我會開始使用int_fastN_t,而停止使用intN_t。
uj5u.com熱心網友回復:
所以我在想,到處使用int_fast8_t是否好呢
不,在任何地方使用它都不好
。我還是想知道,如果我把intN_t全部改為int_fastN_t,是否有什么缺點
主要的缺點是,整數的大小不會正好是N位。在某些用例中,這一點至關重要。
另一個潛在的缺點是,它可能會更慢。是的,"快速 "型別別名可能會更慢。該別名并不神奇,其效率取決于使用情況。
在以下情況下,使用 "快速 "別名是可以的:
確切的大小并不重要,而只是最小值。 您可以選擇以后更改型別(不需要向后兼容)。 你沒有時間去測量哪種型別實際上是最快的(這通常是合理的)。 你并沒有問到使用固定寬度整數的缺點。但為了平衡起見,我還是要提到:它們不能保證在所有系統上都能提供。當然,在其他一些使用情況下,它們可能會更慢(考慮到命名,這可能不那么令人驚訝)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/314144.html
標籤:
上一篇:找到最短的時間
下一篇:C 中的類模板和友誼
