有一点很明确,在C/C++中从来没有定义过void main这样的代码形式,C++之父Bjarne Stroustrup 在他的主页FAQ中明确写着这样一句话:

在C++中绝对没有void main 这样的函数定义,在C中也是。

由于,微软产品的市场占有率和影响力很大,同时,其编译器VC++纵容void main这种形式的编程,因此在某种程度上,加剧了这种不良习气的蔓延。

但是,不是所有的编译器,都支持void main。例如GCC,因此,在软件移植性上建议不使用void main 型。同时,还有很多老版本的C,支持main这种形式,

之所以支持,是因为在第一版的C语言中,只有int数据类型,并不存在char,long,float,double等这些内置数据类型。既然只有int型,也就不必显示的为main函数

标明返回类型了。后来,C的数据类型进行了扩充,为了能兼容以前的代码,规定, 不明确表明返回值的,默认返回值为int

最后,在main函数中,return语句的作用在于离开main函数(析构掉所有具有动态生存时间的对象),并将其返回值作为参数来调用exit函数,如果执行到结尾而没

有遇到return语句,其效果等价于执行了return 0

也就是做如果没有遇到return语句,编译器为你隐式的加上return 0

这个规则,只使用于main函数。且函数返回类型是int

请记住:

要想保证程序有良好的可移植性,就要标明main函数返回int,且加上return 0

建议0 不要让main函数返回void相关推荐

  1. main函数返回值return 0

    1. C语言中 在 C89(C语言的早期标准)中,main() 是可以接受void返回值的.Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The C pro ...

  2. C/C++main函数返回值以及return 0的作用

    C/C++main函数返回值以及return 0的作用 main函数的返回值 main函数的返回值用于说明程序的退出状态.如果返回0,则代表程序正常退出.返回其它数字的含义则由系统决定.通常,返回非零 ...

  3. 编写一个函数int isPrime(int x),当x是素数时,返回1,否则返回0; 在main函数中,输入一个正整数,如果是素数输出Y,否则输出N。

    编写一个函数int isPrime(int x),当x是素数时,返回1,否则返回0: 在main函数中,输入一个正整 #include<stdio.h> int isPrime(int x ...

  4. 【Linux 内核】进程管理 ( 进程状态 | 进程创建 | 进程终止 | 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 )

    文章目录 一.进程状态 二.进程创建 三.进程终止 ( 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 ) 一.进程状态 Linux 进 ...

  5. 【C/C++main函数返回值为空、return 0、return a的意义是什么】

    main函数的返回值用于说明程序的退出状态: 如果返回0(return 0),则代表程序正常退出.通常,返回非零代表程序异常退出(可自行设定:如 return -1). return 后面是个变量a, ...

  6. java的main函数返回值_Java中的main方法

    首先需要说明的是: 1.main函数(主函数)是可以调用的,这种调用是没有意义的: 2. main函数只能出现在公共类中也就是public class中: 但我不明白的是:在eclipse中默认的in ...

  7. python main函数返回值,Python main函数

    Python main函数 Python main函数教程 Python 中的 main() 函数只有当该 Python 脚本直接作为执行程序时才会执行,当该 Python 脚本被作为模块被导入时,其 ...

  8. C++ 关于 main 函数的几点说明

    1.main() 函数的标准原型 main() 函数是 C++ 程序的入口函数,C++ 标准规定 main() 函数的返回值类型为 int,返回值用于表示程序的退出状态,返回 0 表示程序正常退出,返 ...

  9. C语言main函数参数、返回值

    C语言main函数返回值: main函数的返回值,用于说明程序的退出状态.如果返回0,则代表程序正常退出:返回其他数字的含义则由系统决定,通常,返回非零代表程序异常退出,即使程序运行结果正确也仍需修复 ...

最新文章

  1. java 泛型 父子,Java泛型-mb601cf8a78cc07的博客-51CTO博客
  2. 白话uni-app 【也是html、vue、小程序的区别】
  3. JavaScript定义函数的几种方式 1
  4. Shader 坐标转换
  5. Webpack 知识点总结
  6. 【实验】简单实时300点采样逻辑
  7. 树莓派安装TPLINK_WN725n v2网卡驱动
  8. python:random.randint 和 numpy.random.uniform
  9. 【CSDN浏览器助手9月新版本】免费插件让你享受VIP待遇!
  10. VC6.0用file-open后,出现“MSDEV.EXE-应用程序错误 遇到问题需要关闭“
  11. 你还为数学建模模型代码实现而烦恼吗?一文带你实践30多种常用模型python代码
  12. 使用IP-guard补丁分发批处理脚本实现分发补丁
  13. win10 linux 无法下载,更新win10后不能安装ubuntu的解决方法
  14. 局域网联通公网小部分知识点
  15. [业务流程图]与[数据流程图]的比较
  16. 入局智能健身镜,小度破圈进行时
  17. 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 数字识别
  18. 【小程序源码】头像组合多种分类并支持姓氏头像制作生成
  19. listview 的首行固定内容标题且加粗显示(类似于表格的首行)的实现方法
  20. Maven多模块开发Action:Consider defining a bean of type '*.*.*' in your configuration解决

热门文章

  1. Android -- 无线网络配置信息的管理者WifiConfigStore简介
  2. 机器学习入门(三):神经网络起手式
  3. Android SystemProperties系统属性详解
  4. V4L2视频应用程序编程架构
  5. 视频编解码(十三):list_for_each_entry列表总结
  6. 远程桌面连接-GPU加速
  7. php的闭包函数bingto_php的闭包
  8. python 中文乱码_python 解决cv2绘制中文乱码问题
  9. 分布式和微服务区别_分布式、集群、微服务到底有啥区别?
  10. win10+tensorflow-gpu+pycharm+anaconda...的成功安装,顺利在spyder import tensorflow