c++ 跳出函数_在Windows环境开发C程序,您可能一辈子也弄不懂main函数

当我们来到火星上,回头看我们居住的地球,很轻易地发现地球是圆的。

无论您是刚刚学习C语言,还是您已经使用了十年C语言。您肯定见过main函数的不同形式:

7784f4ba054474053a7f9a38976986b3.png

main函数的形式这么多,好像每一种都能编译通过,都能用于生成可执行文件。

就这么一个简单的main函数,很多使用C语言长达十年的程序员只知道有这么多形式,但不知道为什么。我个人认为,使用一样东西,而不知道其原理,总让人惴惴不安。

假如您一直在Windows环境下做C程序开发,有可能您这一辈子都弄不懂为什么main函数是这个样子。一旦您跳出Windows范围,学习UNIX、MINIX、Linux环境编程,您就会恍然大悟,就像人类从火星看地球一样,原来世界是这个样子!

UNIX从诞生的第一天起,就是一个多进程操作系统。

下面是进程的两个概念:

(1)当我们编写的程序启动后,就成为了一个进程;

(2)一个进程可以创建另一个进程,创建者为父进程,被创建者为子进程。

C语言是和UNIX紧密结合的,对我们程序员来说,main是入口函数,当main被执行时,就是创建了一个子进程。

从父进程和子进程通信的角度来看,main函数的作用是:

(1)父进程通过main函数的参数,向子进程传递信息;

(2)子进程通过main函数的返回值,向父进程返回信息:0表示正常,其他值表示错误。

所以,真正的main函数只有一种形式!!!

它就是:

ff7d86bddb43ec5d5ac79a2085b60938.png

注:如果函数出错,可以返回非零值

其他的main函数形式呢?

其他的main函数形式,都只是C编译器送给您的语法糖!!!

语法糖的规则是:

(1)如果您编写的main函数不使用参数,C编译器会给您加上int argc, char** argv参数,只是您没有使用而已;

(2)如果您编写的main函数返回void,C编译器会帮您把void改为int,并且将main函数的所有return语句改为return 0,并在函数结尾加上return 0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值