在我们学习c语言之后,对与编写一个程序就有了一个框架:大致如下
#include<stdio.h>
int main(void)
{
{
函数体
}
return 0;
}
一个c程序由一个固定名称为main的主函数和若干个其他函数(可没有)组成。而main()函数是c程序的入口。
一个c程序有且仅有一个主函数。主函数在程序中的位置可以是任意的,但程序执行的时候总是从main()函数开始,并在main()函数内结束。main()函数可以调用其他各种函数,但是其他函数不能够调用main()函数。
一、main()函数的形式
1、无参数形式
int main(void) void指的是没有返回值,表示没有给函数传递参数
{
return 0;
}
2、有参数形式
int main( ) 括号中有内容,可以把声明写在括号里
{
return 0;
}
二、main()函数的顺序问题
main()函数的位置可以是任意的,但有时候还是会出现编译错误的情况,这是为什么?
首先需要理解两个概念:声明和定义.
声明:引入标识符和标识符的类型(是整型,函数,浮点型)
extern int a;
extern double b;
entern int c(int,int);(函数声明时extern可以省略)
double d(int,double)
定义:为标识符分配存储空间,还可为标识符指定初始值。简单来说就是给出返回值。
int a;
double b=3.14;
intc(int a,int b)
{
return(a*b);
}
可以看出,对于一个变量来说 :int i //声明就是定义
对于函数来说:int sum(int x,int y)//应该给出具体的算法
{
return(x+y);
}
那么现在就回到上面的问题:
其实 由于main()函数是入口,所以系统调用时会跳到main()函数开始执行,main()函数编译完成后,程序也会结束。
如果main( )函数放在其他函数之前,那么从main()函数开始执行后,由于main()函数中所调用的其他函数没有提前声明,
所以编译没有办法通过,就会出现报错。
如果main()函数放在其他函数之后,由于其他函数不会被运行,所以无需声明。