C 中的printf
和scanf
函数族使用少数原始格式说明符,这些说明符对应于基本数据类型 - %d
for int
,%llu
forunsigned long long int
等。
然而,有大量标准化的类型别名是人们想在实践中使用的,例如int32fast_t
,而且人们不能也不应该知道底层的基本类型。对于 中的别名stdint.h
,幸运的是,C 标准指定了一组宏来生成相应的格式字符串,PRI32
例如inttypes.h
.
Posix 是否有一组类似的宏?Posix 有大量的不透明类型,例如ssize_t
, pid_t
, rlim_t
,suseconds_t
等,它们都是基本整数类型的变体。如何在格式字符串中可移植地使用这些类型?