LS错误,C标准库中,getch()包含在conio.h而不是stdio.h中,而getchar()、printf()等包含在stdio.h中。
LZ如果不确定,可以打开编译系统的对应目录(一般是安装路径下的其中一个include目录)找到这个头文件,用记事本或其它文本编辑器或IDE自带的编辑器直接打开,看里面的内容。一般可以看到其中的库函数都只是声明而没有定义,因为事实上这些函数声明为extern形式,它们的实现存放在外部的库文件中(工程文件或makefile或编译系统记录了这些库文件的位置),而没有源代码。
C/C++语言中,标识符必须先声明才能使用。函数名是标识符。另外函数定义包含了声明。所以如果使用了一个自己没有额外声明或定义的函数,又不去#include包含了这些函数声明的头文件,编译器很可能无法得知这些函数的实现在哪里,造成编译错误。
====
[原创回答团]
参考资料:原创