2014-03-06 69 views
-5

uint8可以表示爲ubyte,uint16可以表示爲uword,uint32可以表示爲ulong,uint64可以表示爲?c中的無符號整數的類型是什麼?

我正在尋找無符號整數如何表示爲c中的數據類型,但我對如何呈現uint64有困惑? 是否可以使用uint64作爲udouble在c中?請有人指導我? 它會支持嗎?

什麼可能是格式說明符的所有上述?

我只是簡單地加入這一行,因爲它要求身體不符合要求並告訴添加一些內容。所以我加了這個。

+5

如果您使用的是C99編譯器兼容,只是'#包括'你有一個定義上面提到的所有整數類型:'uint8_t','uint16_t','uint32_t','uint64_t'和簽名的對應。 –

+0

什麼可能是typedef unsigned long uint32的格式說明符? – user3383557

+2

'#include '然後使用''%'PRIu32'。 – Simple

回答

3

所有這些類型的UINT8,UINT16,UINT32,UINT64不是標準的基本類型和它們或typedef名稱或實現定義的類型

至於UINT64然後例如它可以被定義爲

typedef unsigned long long uint64; 

考慮到整體類型的大小是實現定義的。所以可能在上面的定義中使用unsigned long就足夠了,因爲在某些平臺上sizeof(unsigned long)可以等於8個字節。

如果你想使用標準的整數類型不依賴於所使用的平臺,那麼你應該包括頭<cstdint>

還有其他定義的類型

typedef unsigned integer type uint8_t; // optional 
typedef unsigned integer type uint16_t; // optional 
typedef unsigned integer type uint32_t; // optional 
typedef unsigned integer type uint64_t; // optional 

typedef unsigned integer type uint_fast8_t; 
typedef unsigned integer type uint_fast16_t; 
typedef unsigned integer type uint_fast32_t; 
typedef unsigned integer type uint_fast64_t; 

typedef unsigned integer type uint_least8_t; 
typedef unsigned integer type uint_least16_t; 
typedef unsigned integer type uint_least32_t; 
typedef unsigned integer type uint_least64_t; 
2
#include <stdint.h> 

中,下述的無符號類型定義獲取全局名稱空間中定義的所有類型。

#include <cstdint> 

讓它在命名空間std中定義。

在我的實現,即在stdint.h我可以找到:

#if __WORDSIZE == 64 
typedef unsigned long int uint64_t; 
#else 
__extension__ 
typedef unsigned long long int uint64_t; 
#endif 

uint32_t

#ifndef __uint32_t_defined 
typedef unsigned int  uint32_t; 
# define __uint32_t_defined 
#endif 
+0

什麼可能是typedef unsigned long uint32的格式說明符? – user3383557

+0

@ user3383557 typedef unsigned int uint32_t; – 4pie0