【发布时间】:2012-06-08 11:28:44
【问题描述】:
根据 K&R C 第 1.6 节,char 是一种整数。那么为什么我们需要%c。为什么我们不能对所有事情都使用%d?
【问题讨论】:
-
@MaziarBouali 不一定。
-
printf需要知道参数的大小才能打印它(可以说是适当地转换它)。char的大小为 1,int至少有这个大小,在大多数机器上更多。此外,当使用%c时,您希望打印一个字符,而不是一个数字。在D语言中,您将始终使用%s并让编译器担心类型。 -
@MatejNanut 否,小于
int的整数类型在传递给可变参数函数时会提升为int。 -
@Pubby:谢谢,我不知道。但是,在使用 long 时仍然存在这种歧义,它们是整数,您不能(或不应该)为它们使用
%d。
标签: c