建议0 不要让main函数返回void
有一点很明确,在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相关推荐
- main函数返回值return 0
1. C语言中 在 C89(C语言的早期标准)中,main() 是可以接受void返回值的.Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The C pro ...
- C/C++main函数返回值以及return 0的作用
C/C++main函数返回值以及return 0的作用 main函数的返回值 main函数的返回值用于说明程序的退出状态.如果返回0,则代表程序正常退出.返回其它数字的含义则由系统决定.通常,返回非零 ...
- 编写一个函数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 ...
- 【Linux 内核】进程管理 ( 进程状态 | 进程创建 | 进程终止 | 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 )
文章目录 一.进程状态 二.进程创建 三.进程终止 ( 调用 exit 系统调用函数主动退出 | main 函数返回自动退出 | kill 杀死进程 | 执行异常退出 ) 一.进程状态 Linux 进 ...
- 【C/C++main函数返回值为空、return 0、return a的意义是什么】
main函数的返回值用于说明程序的退出状态: 如果返回0(return 0),则代表程序正常退出.通常,返回非零代表程序异常退出(可自行设定:如 return -1). return 后面是个变量a, ...
- java的main函数返回值_Java中的main方法
首先需要说明的是: 1.main函数(主函数)是可以调用的,这种调用是没有意义的: 2. main函数只能出现在公共类中也就是public class中: 但我不明白的是:在eclipse中默认的in ...
- python main函数返回值,Python main函数
Python main函数 Python main函数教程 Python 中的 main() 函数只有当该 Python 脚本直接作为执行程序时才会执行,当该 Python 脚本被作为模块被导入时,其 ...
- C++ 关于 main 函数的几点说明
1.main() 函数的标准原型 main() 函数是 C++ 程序的入口函数,C++ 标准规定 main() 函数的返回值类型为 int,返回值用于表示程序的退出状态,返回 0 表示程序正常退出,返 ...
- C语言main函数参数、返回值
C语言main函数返回值: main函数的返回值,用于说明程序的退出状态.如果返回0,则代表程序正常退出:返回其他数字的含义则由系统决定,通常,返回非零代表程序异常退出,即使程序运行结果正确也仍需修复 ...
最新文章
- java 泛型 父子,Java泛型-mb601cf8a78cc07的博客-51CTO博客
- 白话uni-app 【也是html、vue、小程序的区别】
- JavaScript定义函数的几种方式 1
- Shader 坐标转换
- Webpack 知识点总结
- 【实验】简单实时300点采样逻辑
- 树莓派安装TPLINK_WN725n v2网卡驱动
- python:random.randint 和 numpy.random.uniform
- 【CSDN浏览器助手9月新版本】免费插件让你享受VIP待遇!
- VC6.0用file-open后,出现“MSDEV.EXE-应用程序错误 遇到问题需要关闭“
- 你还为数学建模模型代码实现而烦恼吗?一文带你实践30多种常用模型python代码
- 使用IP-guard补丁分发批处理脚本实现分发补丁
- win10 linux 无法下载,更新win10后不能安装ubuntu的解决方法
- 局域网联通公网小部分知识点
- [业务流程图]与[数据流程图]的比较
- 入局智能健身镜,小度破圈进行时
- 人工智能 - paddlepaddle飞桨 - 深度学习基础教程 - 数字识别
- 【小程序源码】头像组合多种分类并支持姓氏头像制作生成
- listview 的首行固定内容标题且加粗显示(类似于表格的首行)的实现方法
- Maven多模块开发Action:Consider defining a bean of type '*.*.*' in your configuration解决
热门文章
- Android -- 无线网络配置信息的管理者WifiConfigStore简介
- 机器学习入门(三):神经网络起手式
- Android SystemProperties系统属性详解
- V4L2视频应用程序编程架构
- 视频编解码(十三):list_for_each_entry列表总结
- 远程桌面连接-GPU加速
- php的闭包函数bingto_php的闭包
- python 中文乱码_python 解决cv2绘制中文乱码问题
- 分布式和微服务区别_分布式、集群、微服务到底有啥区别?
- win10+tensorflow-gpu+pycharm+anaconda...的成功安装,顺利在spyder import tensorflow