c语言编译系统默认函数
A. C语言 主函数 main 到底是什么
在DOS的tc编辑器中,主函数main的类型可以省略,系统默认它为int类型。这个类型表示函数的返回值类型。C语言中有许多函数,每个函数都有自己的返回类型和返回值。而主函数main也属于函数的一种,因此也有类型和返回值。不过,由于用户通常不需要特别关注这些细节,所以这个类型可以省略,不标示也可以。
然而,在像VC6.0这样的编辑器中,主函数main的类型是不能省略的,必须明确标出。如果省略了类型,编译器会报错。这主要是因为不同编译器对于主函数main的类型处理有所不同,为了确保程序的可移植性和兼容性,建议在编写时明确写出主函数main的类型。
需要注意的是,尽管在tc编辑器中可以省略main函数的类型,但这并不意味着这是一个好的编程习惯。明确写出主函数main的类型有助于提高代码的可读性和可维护性,尤其是在团队协作开发时,明确的类型定义可以减少误解和错误。
此外,无论是tc编辑器还是VC6.0,主函数main的返回值类型通常被定义为int,这表示main函数会返回一个整数值给调用者。这个返回值通常用于表示程序的执行结果,例如0表示程序正常结束,非0值则表示程序执行过程中出现错误。
总之,尽管在某些编辑器中可以省略main函数的类型,但在编写代码时,明确写出main函数的类型是一个良好的编程实践,可以提高代码的质量和可维护性。
B. C语言中如果未说明函数的类型,则系统默认的函数类型是
如果未说明,默认为int类型。
C. 专家来解决main与void main
考虑到main函数的特殊性,lz不明白这个问题可以理解。
main()是省略了返回值类型,C语言会默认认为成main的类型为int,在main()的函数体内要返回一个值,如return 0;
而void main()的返回值是void类型,也就是说没有返回值。这样在main()的函数体内你就不用写return 0;或者return 1;之类的返回语句。
在一个程序中,可以说你看不出两者的差别,因为main()是C语言的入口点,入口点如果返回了程序也就结束了,因此C语言的这个特性似乎没用。可没用的话,C语言的设计者为什么要这么做呢?!肯定有用。
没错,前面我说的是在一个程序中,它似乎没用。可如果一个程序prog2调用另一个程序prog1的话(这里指的是prog2直接调用prog1编译好的可执行文件),那么这个特性就有用了。因为prog2要知道prog1运行之后的状态。比如你用C写了一个删除文件的程序(暂且命名为delf),然后用另一个程序去调用delf,那么调用结果怎么样啊?这个文件是否删掉了?这是int main()就会派上用场了。C语言中默认的main如果返回为0,那么这个程序调用就成功了,其他值,则为不同的错误代码。在你的delf程序中,如果那个文件删除成功,那么就在int main()中返回0,其他调用delf的程序就知道,噢,这个操作成功了。
在unix/linux系统中的很多命令都是通过这种方式获得运行结果的。
关于谭浩强的书,我想不用多说,发行量说明了一切。毕竟第二版在编写的时候还比较早,而第三版根据很多现在的需要进行了改写,内容当然会好些。鉴于lz是初学C,其实大可不必在这个问题上浪费太多时间,当你有了更多的项目经验,对这个问题会有更深刻的理解。
上面我已经给出了main()、int main()和void main()的区别,但建议lz忽略这个差别,认为成二者一样,先把C的其他部分学好。至于只写成main(),我并不推荐,就算编译器通过了,这种编程的风格也太不严谨,不利于好的习惯的养成。
