82函数的调用 点 对被调函数的声明 2、如何调用一个函数 3、主调函数和被调函数之间如何进行数据传递 例85调用函数fact(求n!(n由用户输入)。 分三种情况: 1)函数fact0与主函数在同一文件中,且main(在 factO前面。 (2)函数fact0与主函数在同一文件中,且main在fat之后 (3)函数fact与main不再同一程序文件中
8.2 函数的调用 ◼ 重点: 1、对被调函数的声明 2、如何调用一个函数 3、主调函数和被调函数之间如何进行数据传递 例8.5 调用函数fact( )求n!(n由用户输入)。 分三种情况: (1)函数fact()与主函数在同一文件中,且main( )在fact()前面。 (2)函数fact()与主函数在同一文件中,且main在fact之后。 (3)函数fact与main不再同一程序文件中
main /*(1)man()在facO前面 Rint n; long p; long fact(int); /函数声明 scanf("od, &n) p=fact(n): /函数调用 printf("in old",p); 0 ng aet(int I)/函数定义* f int i; long s=1; for(i=l; i<=m; i++) return(s) /函数返回* }结论被调函数在后,需在主调函数中先声明后调用
main() /*(1) main( )在fact()前面 */ {int n; long p; long fact(int); /*函数声明*/ scanf("%d",&n); p=fact(n); /*函数调用*/ printf("\n %ld",p); } long fact( int m) /*函数定义*/ { int i; long s=1; for(i=1;i<=m;i++) s*=i; return(s); /*函数返回*/ } 结论:被调函数在后,需在主调函数中先声明后调用
(2)主调函数在被调函数之后* ong fact(intm)/函数定义* d int i; long s=l; for(i=l; i<=m; i++) return(s); maino {intn; long p;/不需函数声明 scanf(%od", &n); p-er() /函数调用* printf(" in old",p); 结论:被调函数先于主调函数被编译,因此在编译主调函数 时已知被调函数的类型等信息。故不需函数声明
/* (2)主调函数在被调函数之后*/ long fact( int m) /* 函数定义*/ { int i; long s=1; for(i=1;i<=m;i++) s*=i; return(s); } main() {int n; long p; /*不需函数声明*/ scanf("%d",&n); p=fact(n); /*函数调用*/ printf("\n %ld",p); } 结论:被调函数先于主调函数被编译,因此在编译主调函数 时已知被调函数的类型等信息。故不需函数声明
/*(3)设fact(函数存放在文件fc中,则编写主调函数时需用 include命令对被调函数声明* Include <flc> main( int n; long p; scanf(%od, &n) p=fact(n) printf("in %old",p); 结论:该程序的效果与(2)相同,由此可现多个件 连接成一个程序 同理,对库函数的调用都要在main函数前用 include命令将函 数所在的头文件包含进来
/*(3)设fact()函数存放在文件f1.c中,则编写主调函数时需用 include 命令对被调函数声明*/ #include <f1.c> main() {int n; long p; scanf("%d",&n); p=fact(n); printf("\n %ld",p); } 结论:该程序的效果与(2)相同,由此可实现将多个文件 连接成一个程序。 同理,对库函数的调用都要在main函数前用include命令将函 数所在的头文件包含进来
函数声明小结: 被调函数必须是已存在的函数,通过“函数声明”告知编 译系统关于被调函数的有关信息。 函数声明的形式:函数类型函数名(参数表) (注意与函数定义的区别) 1、若被调函数是库函数或用户已编写的函数(与主调函数不 在同一文件中),则使用前需在程序的开头用 include命令 将被调函数的信息包含进来。 若主调函数与被调函数在同一文件内,且主调函数在前 则必须在主调函数的说明部分或主调函数的前面对被调函 数进行说明。 3、以下情况下可以省略对被调函数的说明 a)函数类型为整型b)被调函数在主调函数之前定义 通常,将所有函数的说明集中在程序开头;或将所有函数的 信息写入一个文件,编程时用 include命令将其包含进来即
函数声明小结: ◼ 被调函数必须是已存在的函数,通过“函数声明”告知编 译系统关于被调函数的有关信息。 ◼ 函数声明的形式:函数类型 函数名(参数表); (注意与函数定义的区别) 1、若被调函数是库函数或用户已编写的函数(与主调函数不 在同一文件中),则使用前需在程序的开头用include命令 将被调函数的信息包含进来。 2、若主调函数与被调函数在同一文件内,且主调函数在前, 则必须在主调函数的说明部分或主调函数的前面对被调函 数进行说明。 3、以下情况下可以省略对被调函数的说明。 a)函数类型为整型 b)被调函数在主调函数之前定义 通常,将所有函数的说明集中在程序开头;或将所有函数的 信息写入一个文件,编程时用include 命令将其包含进来即 可