C语言替换getch()为return 0后进程返回14问题咨询
问题成因
- 核心矛盾是
main函数返回类型和返回值不匹配:你声明的void main()代表该函数没有返回值,但你在函数末尾写了return (0);试图返回整数0,属于语法违规,触发了未定义行为。你看到的进程返回码14,就是当前运行环境对该错误的具体表现。 - 你之前使用
getch()时没有触发错误的原因:getch()是<conio.h>提供的非标准函数,作用是阻塞等待用户输入单个字符,此时程序执行到此处会暂停,你输入字符后程序直接运行到main函数结束,没有显式的返回值语句,符合你声明的void返回类型要求,所以不会触发返回值相关的错误,退出码正常。
修复方案
- 把
void main()改为C标准规定的int main(),此时return 0;就是合法的,代表程序正常退出,运行后就会显示返回码0。 - 如果需要保留程序运行后暂停、方便查看输出的效果,可以在
return 0;之前加一行getch();即可。
内容的提问来源于stack exchange,提问作者bibhukjha
相关产品推荐
相关产品推荐

