我不明白的是,虽然calc.h包含在main(使用函数),getop.c(getop的定义)和stack.c(push和pop的定义)中,但它不包含在getch中. c,即使在那里定义了getch和ungetch.
无论如何包含头文件是一个好主意的原因是因为如果你使用现代风格的原型和定义它会提供一些安全性.编译器应该抱怨,例如getop.c中没有使用与calc.h中相同的签名定义getop.