格式化size_t、ssize_t、int64_t以及uint64_t

size_t 在C/C++里面表示对象的大小,是个无符号整数,但是它在32和64位下面定义是不同的。因此如果使用%d来进行格式化输出,会得到一个警告。

在C99标准里面,添加了%zd来格式化size_t,从而实现了32和64位兼容,如果需要格式化成16进制,可以使用:%zx。

另外,针对ssize_t(有符号的size_t)可以使用: %zu来格式化。

而int64_t可以使用C99标准的: %jd,uint64_t可以使用:%ju


注意:VS2013并不支持,上述C99标准。

推荐阅读更多精彩内容