我编写了一个程序,它接受一个字符输入,并输出该字符,就像这样:
令我惊讶的是,这导致编译器抛出了两个错误:
发生了什么?是什么神奇的东西导致这些错误出现,然后又消失了呢?
int ch = getchar();
printf("%c", ch);
它按照我的预期工作。然后我决定更加友好,先打印Hello
。
printf("Hello!\n");
int ch = getchar();
printf("%c", ch);
令我惊讶的是,这导致编译器抛出了两个错误:
我不明白为什么添加第一行会导致发生这种情况。无论如何,我重构了程序以消除int声明,错误神奇地消失了。错误 C2065: 'ch' : 未声明的标识符
错误 C2143: 语法错误 : 缺少 ';' 在 'type' 前
printf("Hello!\n");
printf("%c", getchar());
发生了什么?是什么神奇的东西导致这些错误出现,然后又消失了呢?