main函数是C程序的入口函数,即程序的执行是从main函数开始c语言根号函数,对其他函数的调动也是直接或间接地在main函数中被调用。那么main函数又是被谁调用呢?答案是操作系统。C语言发展至今,对main函数有多种不同的写法,下面就来探究一下各种不同的写法。

无参数版本:

NO.1

main(){}

NO.2

void main(){}

NO.3

int main(){}

NO.4

int main(void){}

有两个参数版本:

NO.5

int main(int argc,char *argv[]){}

NO.6

int main(int argc,char **argv){}

有三个参数版本:

No.7

int main(int argc, char* argv[], char* envp[])

写法1在C90标准下可以正常编译,而在C99和C11标准下会抛出一个警告(不写返回值,默认的返回值为int,也就相当于写法1和写法3等价)。写法2-6在C90、C99、C11标准下均能正常编译。在这么多写法中,到底哪一些才是main函数的标准写法?于是查阅了C标准文档对main函数的规范写法,见下图:

c语言中根号的函数_根号的c语言表达式_c语言根号函数

从标准文档中可以看出,写法4、5、6才是main函数的规范写法。,main函数是被操作系统调用的,操作系统会根据main函数的返回值来判断程序的正确执行与否,这样是为了让C程序具有更好的移植性。写法5与写法6是等价的,第一个参数代表main函数参数的个数,第二个参数用指针分别指向这些参数。argv[0]代表程序名,argv[1]到argv[argc-1]代表程序参数,写法7在argc和argv的基础上多了一个环境变量参数,环境变量的形式是“ENV=value”营销引流,参数类型是指针数组或二级指针下面再看看main函数的返回值问题,见下图

从图中可以看出,如果main函数的返回值是int类型的兼容类型,从main函数返回后的值与exit一起相当于执行了exit xxx。xxx代表从main函数返回后的值。如果忘记写了return语句,当执行到main函数体的右大括号}c语言根号函数,会返回默认值0。返回0代表程序执行成功,程序退出。如果main函数的返回类型不是int类型的兼容类型,程序返回给操作系统的状态将会不明确。

这下对main函数是不是有一个更深入的了解了呢?

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注