嵌入式c语言 函数与程序结构
第三章 函数与程序结构
3 1 概述
C语言的程序除主函数外,还可以有若干
个其他函数 块状结构。
一般把其中相对独立的算法和功能定义成
一个独立的函数,以供需要的地方调用。
优点:
(1 )减少代码的重复现象。
(2 )便于分工合作。
(3 )便于阅读。
(4 )便于独立算法的代码移植。
3 2 函数的定义和调用
举例说明:
对于求两个数中的最大值,有三个步骤:
(1 )从键盘输入两个数给a和b。
(2 )求a和b中的最大值。
(3 )输出结果。
把求最大值的算法部分定义成一个独立的
函数:
函数类 函数名 函数参数(形参)
int max( int x,int y) main()
{ int z; { int a,b,c;
if(x>y)z=x; scanf(“%d%d”,&a,&b);
else z=y; c=max(a,b);
return(z); printf(“%d”,c);
} }
x y z a b c
3 5
说明:
(1 )程序由两个函数组成,它们逻辑上相互独
立(功能、变量)。
(2 )程序的执行总是从主函数开始,主函数总
是被执行一次,其他函数只有在被调用时才获
得控制。
(3 )函数调用有两个作用:转移控制权和传递
参数。
(4 )return的作用也有两个:交回控制权和返
回结果。
(5 )实参可以是常量、变量或表达式,但类
要一致。
定义一个函数除考虑算法外就是:如何设
计函数的参数,通过何种途径交回结果。
例:求自然数1 100中的素数之和。
int m)
? prime( ? ) main()
int
{ int i; { int i,s=0;
for(i=2;i
return 0;
if(m%i==0) ? if(prime(i) ) s+=i;
return 1;
? printf(“\n %d”,s);
else return 1;
} }
例:求5!+7!+4!的值。
int
? fac( ? )
int n
{ int i,s=1;
for(i=1;i<=n;i++) s*=i;
return (s);
}
main ()
{
printf(“\n%d”,fac(5)+fac(7)+fac (4));
}
main ()
{ float s,fac (); 对被调函数声明
s=fac (5)+fac(7)+fac(4);
printf(“\n%f”,s);
}
float