【发布时间】:2017-05-17 18:23:13
【问题描述】:
我在 ubuntu 终端 gcc 编译器上用 c 编程。 printf 没有给出任何输出。请解释原因。
#include <stdio.h>
int main()
{
int c;
while (c = getchar() == EOF)
{
printf("%d\n", (int)c);
}
return 0;
}
【问题讨论】:
-
while (c = getchar() == EOF)-->while ((c = getchar()) == EOF) -
无需将
c转换为int,因为对于可变参数函数,对int的提升是隐式完成的。 -
@alk Unclear:你指的是对
int的隐含提升? -
@chux: ... 在传递给可变参数函数时,对于等级低于
int的参数,会隐式提升到int。 -
@alk 是的,同意你说的是真的,但这在这里如何应用?唯一的变量是
int c,并且排名不低于int,并且不会发生晋升。
标签: c gcc printf output getchar