扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
只能有一个main函数。
创新互联专注于涿鹿企业网站建设,响应式网站设计,商城网站建设。涿鹿网站建设公司,为涿鹿等地区提供建站服务。全流程按需设计,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
在C语言当中,一个程序,无论复杂或简单,总体上都是一个“函数”;
这个函数就称为“main() 函数”,也就是“主函数”。比如有个“做菜”程序,那么“ 做菜 ”这个过程就是“主函数”。
在主函数中,根据情况,你可能还需要调用“买菜,切菜,炒菜”等子函数。
扩展资料:
函数分类
从用户使用的角度看,函数有两种:
1、标准函数,即库函数。这是由系统提供的。
2、用户自定义的函数。可以解决用户的专门需要。
二、从函数的形式看,函数分两类:
1、无参函数。printstar和print_message就是无参函数。在调用无参函数时,主调函数并不将数据传送给被调用函数,一般用来执行指定的一组操作。
2、有参函数。在调用函数时,在主调函数和被调用函数之间有数据传递。也就是说,主调函数可以将数据传递给被调用函数使用,被调用函数中的数据也可以带回来供主调函数使用。
参考资料:百度百科-----main函数
int main(void);
int main(int argc,char argv*[]);
ISO C99标准定义了以上两种。
由于ANSI C89/ISO C90中返回值可以被省略而默认为int,所以main(void);也可以作为原型。(新标准取消了这个特性。)
以上只是标准规定的形式入口函数原型。其余的入口函数(甚至可以不叫main)由实现定义,取决于平台(编译器)。注意非标准的入口函数会导致代码可移植性差。例如对于控制台程序,Microsoft CC++ Compiler支持void main(),但这样的代码在GCC上无法通过编译。
C语言中()参数列表表示可以接受任意类型和个数的参数(对应C++中的(...)),而(void)不接受参数(对应C++中的(...)),两者有所区别。不过一般C的入口函数实现中前者兼容后者。于是int main();作为C++标准入口函数形式之一(另一种是int main(int argc,char argv*[]);),事实上和C通用。
另外一种非标准通常形式为int main(int argc,char *argv[] char *envp[]),envp表示传入的环境变量。
一般来说,除非限制了特定的平台(在一些特定的场景如Linux内核程序中,应该使用void main();),对于控制台程序最好只使用标准定义的入口函数形式或者int main();。即使用VC++,void main();也一般不是被推荐的。main的返回值传递给调用者(操作系统/父进程),通常0表示正常退出,非0表示非正常退出。如果使用void main();,控制台程序的返回值是不确定的,和平台相关。
====
[原创回答团]
返回值得目的是告诉调用者或者系统 函数的调用状态,一般0表示调用成功。
这个返回值,可以是void,也可以是int,其他的貌似不行了。
对于参数列表来说,两个写法都可以,不过宽从程序的严谨方面考虑,更推荐第二种写法。
对于返回值来说,两个写法的返回值类型都是int(如果不写返回值类型,就默认为int类型),所以应该返回一个int类型的值,因此,第二种写法的完整的,而第一种写法会导致编译器警告(在一些不标准的编译器(如VC++6.0)上也许不会有提示信息),但是,这种风格是不值得推荐的,操作系统通过main()函数的返回值判断程序的运行状态,所以总是应该返回一个值的(如果程序运行一切正常,就应该返回0,就像第二种写法那样)。
这两个写法都不是main()函数的完整形式,main()函数一般情况下有三种形式:
1、如果程序不需要从命令行接受参数,可以使用以下形式:
int
main(void)
{
return
0;
}
2、如果程序需要从命令行接受参数,要用以下形式:
int
main(int
argc,char
argv*[])
{
return
0;
}
3、如果程序还需要获得操作系统环境变量的值,要用以下形式:
int
main(int
argc,char
*argv[]
char
*envs[])
{
return
0;
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流