学习关于main( )函数,第1张

学习关于main( )函数,第2张

C的设计原则是用函数作为程序的构建块。main()函数称为main函数,一个C程序总是从main()函数开始。

首先,main()函数的形式

在最新的C99标准中,只有以下两个定义是正确的:
int main(void)-无参数形式
{
...
返回0;
}

int main(int argc,char * argv[])-带有参数形式
{
...
返回0;
}

表示main()函数的返回类型,函数名后面的括号一般包含传递给函数的信息。Void意味着没有参数传递给函数。我们稍后将讨论带参数的表单。

如果你浏览旧版本的C代码,你会发现程序经常以

main()开头

这种形式开始。C90标准允许这种形式,但C99标准不允许。所以即使你当前的编译器允许,也不要写这个。

你可能见过另一种形式:

Void main()

一些编译器允许这种形式,但是还没有标准考虑接受它。C++之父比雅尼·斯特劳斯特鲁普在自己主页的FAQ中明确表示,void main()的定义在C++或C中都是不存在的,因此编译器不必接受这种形式,很多编译器也不允许。

坚持标准的意义在于,当你把一个程序从一个编译器移到另一个编译器时,它仍然可以正常运行。

二。main()函数的返回值

从前面我们知道main()函数的返回值类型是int,程序最终返回0;与此相呼应的是,0是main()函数的返回值。那么这个0返回到哪里呢?返回操作系统,表示程序正常退出。因为return语句一般写在程序的最后,不管它返回什么值,只要到了这一步,就说明程序已经运行完了。return的作用不仅仅是返回一个值,还可以结束函数。
现在做一个小实验(注:我的系统是Windows XP,编译环境是TC)观察main()函数的返回值。编写以下代码,编译并运行它:

//a . c
# include " stdio . h "
int main(void)
{
printf("我爱你。");

返回0;
}

将此文件另存为A.C .编译运行后,将生成一个A.C文件。现在打开命令提示符,运行刚刚在命令行编译的可执行文件,然后输入echo %ERRORLEVEL%并回车,可以看到程序返回一个0。如果返回0;改回99;那么很明显,再次执行上述步骤后,可以看到程序返回到99。如果你这样写return 99.99这仍然返回99,因为在99.99被传递给操作系统之前,该类型被强制转换为整数类型。
现在,我们把a.c .改回原来的代码,然后再写一个程序B.C

//b . c
# include " stdio . h "
int main(void)
{
printf(" \ n我也是。");

返回0;
}

编译完成后,打开命令提示符,在命令行输入a&&b,就可以看到《鬼情未了》中经典的爱情对白:

我爱你。
我也是。

&的意思是:如果&的前一个程序正常退出,继续执行&的后一个程序,否则不执行。所以,如果你把返回0放在A.C。或者删除,改成返回99;那你只能看到我爱你。也就是说,程序b.c不会被执行。现在,大家应该明白return 0;它的作用。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 学习关于main( )函数

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情