在纯 ANSI C (C89) 中,我有以下内容。
unsigned y=<smallnumber>,x=y+3;
printf("%<whatgoeshere>\n",x-y);
我在后面放什么%
以绝对确定它会打印3
?我可以在此处看到两者的参数%u
(如果两个操作数都是,则结果是无符号的)和(将参数传递%d
给时将整数表达式转换为)。int
printf
当然,两者都适用于任何合理的编译器,这正是我在这里问的原因。:-) 我有一种感觉,根据标准,只有一个是真正正确的(但即使这样也可能是错误的)。