其实,C程序的退出码在操作系统的环境中就是ERRORLEVEL变量值,是用来控制后续流程的,API和很多C函数也都爱用返回错误码来供调用者检测执行结果并标识相应的错误情况。这是传统C程序的做法,不过现在较少这样用了,错误码会储存在某个全局变量中,用GetLastError()函数来获取,不靠函数自身返回。main()函数必须有返回值这种做法仅仅是传统习惯罢了,ANSI C说应该如此,也是尊重传统以及出于兼容别的操作系统考虑,想象一下很多语言的程序都不规定必须向操作系统返回什么(根本就没那样的机制),难道人家就不运行在操作系统中、只有你C程序才配是程序?可见这并非什么铁律。