3 回答

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊
您可以將zsize_t和tptrdiff_t用于
printf("%zu %td", size, ptrdiff);
但是我的聯(lián)機(jī)幫助頁(yè)上說(shuō),一些較早的庫(kù)使用的字符不同于,z并且不鼓勵(lì)使用它。但是,它是標(biāo)準(zhǔn)化的(通過(guò)C99標(biāo)準(zhǔn))。對(duì)于那些intmax_t和int8_t的stdint.h等等,還有你可以使用宏,像另一個(gè)回答說(shuō):
printf("value: %" PRId32, some_int32_t);
printf("value: %" PRIu16, some_uint16_t);
它們列在的聯(lián)機(jī)幫助頁(yè)中inttypes.h。
就個(gè)人而言,我只想投的價(jià)值觀unsigned long或long像另一個(gè)答案建議。如果使用C99,則可以(當(dāng)然應(yīng)該)強(qiáng)制轉(zhuǎn)換為unsigned long longor,long long并分別使用%lluor %lld格式。

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
對(duì)于Microsoft,答案是不同的。VS2013在很大程度上符合C99,但“不支持hh,j,z和t長(zhǎng)度前綴?!?對(duì)于size_t“即在32位平臺(tái)上為無(wú)符號(hào)__int32,在64位平臺(tái)上為無(wú)符號(hào)__int64”,請(qǐng)使用前綴I(大寫(xiě)字母)以及類型說(shuō)明符o,u,x或X。 請(qǐng)參見(jiàn)VS2013大小規(guī)范
至于off_t,它在VC \ include \ sys \ types.h中定義為long。
- 3 回答
- 0 關(guān)注
- 1422 瀏覽
添加回答
舉報(bào)