2012-08-24 69 views
1

我想知道什麼是POSIX數據類型的格式說明符。 我想用printf()打印它。POSIX數據類型的格式說明符

uint32_t some_long = 10; 
    uint16_t some_short = 20; 

爲以下數據類型,請告訴我,格式說明

int8_t,uint8_t,int16_t 
uint16_t,int32_t,uint32_t 
sa_family_t,socklen_t 
in_addr_t,in_port_t 
u_char,u_short 
u_int,u_long  
+0

[sprintf for unsigned _int64]可能重複(http://stackoverflow.com/questions/5140871/sprintf-for-unsigned-int64) –

回答

3

使用的東西,如:

printf("%"PRIu32, some_long); 

同樣可以使用PRIu8PRId16PRIu64等。此外,這些不是POSIX特有的,它們是標準的。

您需要爲您提到的其他類型(如sa_family_t)製作自己的打印例程。

+0

以前從未見過這些(並非聲稱它們不存在btw),並且似乎無法找到他們在C99標準。 – hmjd

+0

@hmjd在查找7.8 – cnicutar

+0

明白並試用過(http://ideone.com/J5BUb)。 +1 – hmjd