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