【发布时间】:2017-10-23 23:50:23
【问题描述】:
为什么PRIx16 == "x" in C(和in C++)在 GCC 之下?
我希望它是"hx",以便以下工作:
#include <inttypes.h>
int16_t v = -1;
printf("%04" PRIx16 "\n", v); // prints ffffffff, not ffff
【问题讨论】:
-
PRIx16用于uint16_t;你在滥用它。 -
另一方面,
hx同时适用于signed short和unsigned short,因此这似乎是不必要的限制。int16_t是否存在另一个宏? -
C99 第 7.8.1 章,无符号类型的 PRIx 宏。
-
我同意 needlessly restrictive,但我不认为
PRIx16 == "x"不合规。 -
@Eric,你用的是什么版本的standard library?