首先,voidmain在新标准中是错误的。main()向调用程序返回一个整数。int返回类型可以省略(但不推荐)。
不返回值并不意味着函数无用。它可以输出信息,读写文件,以及做许多其他事情。在c语言中,还可以将指针参数传递给函数来修改相应的内存空间数据。函数返回后,传递的指针指向的数据发生了变化,返回结果的目的是以伪装的形式实现的(这在c中非常常见)。
当没有返回(但函数未声明为void)时,根据系统/编译器的不同,可能会返回一些值。例如,当gcc编译器打开-wall选项时,它可能会警告您非void函数不返回语句,因为该函数可能返回的值非常奇怪:
警告:controlreachesendofnonvoidfunction
声明为void的函数也可以使用return,不要在它后面添加任何内容,如下:
return
使函数立即返回(例如,如果函数未能执行,则不应执行以下语句)。