求任意資料型別的位元組長度

2021-06-07 06:22:10 字數 374 閱讀 4209

顯然,大家容易想到就是用sizeof,但是人家面試官就不讓用sizeof實現,就讓自己程式設計實現,這下就發毛了。

哈哈,其實沒必要,只要知道sizeof的底層實現便可。sizeof其實不是乙個函式只是乙個運算子,很簡單。

#define sizeof(l_value) ((char*)(&l_value + 1) - (char*)(&l_value))

當然能夠與unsigned搭配的資料型別也可以用令其等零,取反也可以實現。

**如下:

哈哈,這樣知道怎麼求了吧,我覺得還是用最通用的比較好,就是位操作,效率又高。

資料型別位元組長度表

資料型別名稱 位元組數 別名 取值範圍 int signed,signed int 由作業系統 決定,即與作業系統的 字長 有關 unsigned int unsigned 由作業系統決定,即與作業系統的 字長 有關 int8 1char,signed char 128 到 127 int16 2s...

C 資料型別和位元組長度

bool system.boolean 布林型,其值為 true 或者 false byte system.byte 位元組型,佔 1 位元組,表示 8 位正整數,範圍 0 255 sbyte system.sbyte 帶符號位元組型,佔 1 位元組,表示 8 位整數,範圍 128 127 char...

c語言資料型別位元組長度

short與long兩個限定符的引入可以為我們提供滿足實際需要的不同長度的整形數。int通常代表特定機器中證書的自然長度。short型別通常為16位,long型別通常為32位,int型別可以為16位或32位。各編譯器可以根據硬體特性自主選擇合適的型別長度,但要遵循下列限制 short與int型別至少...