【发布时间】:2019-06-13 13:09:46
【问题描述】:
考虑以下代码:
#include <stdio.h>
#include <inttypes.h>
void main(void)
{
int32_t a = 44;
fprintf(stdout, "%d\n", a);
fprintf(stdout, "%"PRId32"\n", a);
}
什么时候使用%d 更好,什么时候使用"%"PRId32 更好?这两种格式字符有何不同?这是否与您的硬件/机器上的int32_t 类型有关?
【问题讨论】:
-
注意这个问题的 C++ 用户:
"%"PRId32在 C 中很好,但对于 C++11 及更高版本,您需要在两者之间留一个空格,例如"%" PRId32,否则"%"PRId32是用户定义的文字而不是两个单独的标记,这可能会导致编译错误。
标签: c printf conversion-specifier length-modifiers