c语言程序是由函数构成的,一个c源程序至少包含一个main()主函数,main()函数是程序执行的起点。
c语言函数的分类 1. 从函数定义的角度看,函数可分为库函数和用户定义函数两种。
1库函数 由C编译器提供,用户无须定义, 也不必在程序中作类型说明,只需在程序前包含有该函数原型的头文件即可在程序中直接调用。
如三角函数 float sin(float x)返回x的正弦值,x为弧度,使用时必须在程序开头加入include 2用户定义函数 由用户按需要写的函数。对于用户自定义函数, 不仅要在程序中定义函数本身, 而且在主调函数模块中还必须对该被调函数进行类型说明,然后才能使用。
2. C语言的函数兼有其它语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值函数和无返回值函数两种。
1有返回值函数 此类函数被调用执行完后将向调用者返回一个执行结果, 称为函数返回值。如数学函数即属于此类函数。
由用户定义的这种要返回函数值的函数,必须在函数定义和函数说明中明确返回值的类型。
2无返回值函数 此类函数用于完成某项特定的处理任务, 执行完成后不向调用者返回函数值。这类函数类似于其它语言的过程。
由于函数无须返回值,用户在定义此类函数时可指定它的返回为“空类型”, 空类型的说明符为“void”。
3. 从主调函数和被调函数之间数据传送的角度看又可分为无参函数和有参函数两种。
1无参函数 函数定义、函数说明及函数调用中均不带参数。
主调函数和被调函数之间不进行参数传送。
此类函数通常用来完成一组指定的功能,可以返回或不返回函数值。
void Hello { printf “Hello,world \n“; } 2有参函数 也称为带参函数。在函数定义及函数说明时都有参数, 称为形式参数简称为形参。在函数调用时也必须给出参数, 称为实际参数简称为实参。
进行函数调用时,主调函数将把实参的值传送给形参,供被调函数使用。
int maxint a, int b { if ab return a; else return b; } 函数的调用 在一个函数中调用另一个定义的函数。调用格式 函数名称 (实际参数列表);
各个参数之间用逗号隔开,实际参数的个数必须和定义函数时的形式参数数量一致,否则将会出现错误。
函数调用的三种方式 1、函数语句调用 function();
无参数调用 2、函数表达式调用 xmax(a,b)max(c,d);
//将a,b的最大值,c,d的最大值相加之和送到变量 x;
3、做为函数参数调用 xmax(a,max(b,c);
//a和b,c的大值比较,大者送到x,即求a,b,c的最大值;
这种在一个函数中调用另一个函数称为嵌套调用