C语言中main函数可以在任意位置。
创新互联公司成立与2013年,先为芜湖县等服务建站,芜湖县等地企业,进行企业商务咨询服务。为芜湖县企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
每一个C语言程序有且只有一个主函数(main()),且程序必须从main()函数开始,它是程序开始时调用的第一个函数。函数定义形式:【int main(void){}】。
C语言规定,在一个C程序中,main()函数可以在任意位置。
解析:
每个C程序有且只有一个主函数(main),且程序必须从main()函数开始执行,而且main()函数可以放在程序中的任意位置。
详细介绍:
在宿主环境中编译的C程序必须定义一个名为main的函数,这是程序开始时调用的第一个函数。
main()函数的定义有以下两种形式:
(1)函数没有参数,返回值为int类型。int main( void ) { /*…*/ }.
(2)函数有两个参数,类型分别是int和char**,返回值是int类型。int main( int argc, char *argv ) { /*…*/ }.
这两种定义方式都符合C语言标准。除此之外,许多C的实现版本还支持第三种、非标准语法的定义方式:int main( int argc, char *argv, char *envp ) { /*…*/ }.
函数返回值是int,有3个参数:第一个是int,另外两个是char**。
C 正确;
如果main中调用函数,那么这个函数必须在mani函数的前面。但是也可以在main函数的前面声明。因为代码是从main 函数开始,一条一条的顺序执行的。
例:
abc();
main()
{
abc();
}
abc()
{
//内部实现
}
这样就是在前面声明。
例2;
abc()
{
//内部实现
}
main()
{
abc();//直接调用,因为abc已经在前面定义并且了。
}
粗略的角度来讲
A、B都是正确的,
因为,A:main()可以在库函数后面
可以在自定义函数的后面、
可以在自定义函数的前面
B: 的确,系统调用的库函数必须要在main()的前面
准确的来说:A、B都不是很正确,都存在描述性错误、
因为:
首先,main()的位置不是任意的,必须遵守C语言书写的一些基本规范
例如: int a=1;
printf("helle world");
main()
{
printf("%d",a);
}
这样的main()位置就不对
其次,系统调用的库函数必须写在程序的开头
例如:
#include “stdio.h”
main()
{
printf("hello world!")
}
最后,main()的位置变化对程序的影响
例如, #include “stdio.h”
int a=1;
printf("helle world");
main()
{int b=2;br/ a=b;br/ printf("%d",a);br/ }
与下面的程序是不一样的程序
#include “stdio.h”
main()
{int a=1;br/ printf("helle world");br/ printf("%d",a);br/ }
在第一个例子中a=1,是一个全局变量
在第二个例子中,a=1是一个局部变量
导致最后两个程序输出的结果也不一样
回答结束
最后,你问的问题是不是有点简单,有点片面了,该好好学习啊
有空多交流啊
放在前后都可以
函数的使用分为声明和定义
1.如果函数在主函数后面定义,则要在调用前声明。
2.如果函数在主函数之前定义,则调用前不用再此声明,直接用就可以。
注:函数的定义指的是有函数体,即指定了函数的功能,函数的声明是不用写出函数体的
例如:int max(int int);它是声明
int max(int a,int b);它是定义
{
ab?a:b;
}
对于这些在C语言的书中还会有具体讲解。
在调用的函数前定义函数,此时可以不需要声明。
2.在调用的函数前声明。
3.在调用的函数里面也可以声明。
4.在其他文件的头文件*.h文件里面声明,然后*.c文件直接调用头文件也可以。
把子函数放主函数MAIN函数外并且是之前定义,无需声明。
2.如果你把子函数放到MAIN函数外,则必须在定义的时候先声明。
3.如果把 子函数放在MAIN函数中就不需要提前声明了。
4.声明一般告诉编译器有这个对象。可这个'有'字就有2层意思,第一层意思是这个对象在其他地方已经定义过,比如用extern来声明就有这个意思,因为这个对象已经有了这个时候不会对它分配内存。第二层含义就是这个对象以前没有是我现在定义的(现在有了以前没有)这个时候声明又可以称为定义他们是重叠的,这个时候给这个对象分配内存。所以可以看出在有定义的地方一定有声明,有声明的地方不一定就有定义。定义也是声明,这是很多人都不了解的地方