10
在MSVC++編譯器上,可以對特定大小的整數使用__int8
,__int16
,和類似的類型。這對於需要使用低級數據結構(如自定義文件格式,硬件控制數據結構等)的應用程序非常有用。GCC中是否有固定大小的整數?
是否有類似的等價物,我可以在GCC編譯器上使用?
在MSVC++編譯器上,可以對特定大小的整數使用__int8
,__int16
,和類似的類型。這對於需要使用低級數據結構(如自定義文件格式,硬件控制數據結構等)的應用程序非常有用。GCC中是否有固定大小的整數?
是否有類似的等價物,我可以在GCC編譯器上使用?
ISO標準的C,開始與C99的標準,添加標準頭<stdint.h>
定義這些:
uint8_t - unsigned 8 bit
int8_t - signed 8 bit
uint16_t - unsigned 16 bit
int16_t - signed 16 bit
uint32_t - unsigned 32 bit
int32_t - signed 32 bit
uint64_t - unsigned 64 bit
int64_t - signed 64 bit
我使用這些類型的所有的時間。
這些類型僅在實現支持具有適當大小和特徵的預定義類型(大多數)時才被定義。
<stdint.h>
還限定與和(u)int_fastN_t
(「最快」類型的具有至少指定的寬度)的形式(u)int_leastN_t
(具有至少指定寬度的類型)的名稱類型;這些類型是強制性的。
如果您使用的舊版本不支持<stdint.h>
,那麼您可以推出自己的版本;一個實現是Doug Gwyn's "q8"。
stdint.h也是C99的一部分,所以它不再是POSIX特有的。 – puetzk 2008-11-06 18:01:44