【发布时间】:2013-06-01 22:08:15
【问题描述】:
在纯 ANSI C (C89) 中,我有以下内容。
unsigned y=<smallnumber>,x=y+3;
printf("%<whatgoeshere>\n",x-y);
我应该在% 之后添加什么以确保它会打印3?我可以在这里看到%u(如果两个操作数都是,则结果是无符号的)和%d(将参数传递给printf 时,整数表达式转换为int)的参数。
当然,两者都适用于任何合理的编译器,这正是我在这里问的原因。 :-) 我有一种感觉,根据标准,只有一个是真正正确的(但即使这样也可能是错误的)。
【问题讨论】:
标签: c printf ansi unsigned-integer