●经典c形式:函数类型 函数名0; doub le power();!!!函数名后面的“()不 能省略,且括号中无任何参数 ●作用:告诉编译系统函数类型、参数个 数及类型,以便检验。对函数声明是一 种良好的习惯,可把错误改正在初级阶 段。 ·函数定义与函数说明不同
⚫经典c形式:函数类型 函数名() ; ⚫作用:告诉编译系统函数类型、参数个 数及类型,以便检验。对函数声明是一 种良好的习惯,可把错误改正在初级阶 段。 ⚫函数定义与函数说明不同 double power( );!!!函数名后面的“()”不 能省略,且括号中无任何参数
出旧位罢巴支h斯捉出旧立取公(勘内 #include〈stdio.h> float cube(float x) return (x*x*x);] main( 日 float a,product; printf("Please input value of a:") scanf ("%f",&a) product=cube (a); pr intf ("Cubeof%.4fis%.4f\n",a,product);
⚫函数说明位置:程序的数据说明部分(函数内 或外)下列情况下,可省略对被调函数的声明 ◆在同一文件中,被调函数的定义出现在主调 函数之前,main函数中可省略对被调函数的声 明。 #include <stdio.h> float cube(float x) { return(x*x*x);} main() { float a, product; printf("Please input value of a:"); scanf("%f",&a); product=cube(a); printf(”Cubeof%.4fis%.4f\n",a,product); }
◆若被调函数的返回值类型是int型,即使 函数的定义出现在main之后,也不必进行 函数声明,因为整型是系统默认类型。 ◆文件的开头,所有函数定义之前已对各 个函数进行统一声明,在各主调函数内可 不必再次声明
◆若被调函数的返回值类型是int型,即使 函数的定义出现在main之后,也不必进行 函数声明,因为整型是系统默认类型。 ◆文件的开头,所有函数定义之前已对各 个函数进行统一声明,在各主调函数内可 不必再次声明
例函数说明举例 main() y) { float add(float,float); float a,b,c; add ( scanf ("%f,%f",&a,&b); 函数出现在主调函数 c=add (a,b); 前,不必函数说明 printf("sum is %f",c); 数说明 float add(float x,float y) float z; z=x+y; return (z);
例 函数说明举例 main() { float a,b; int c; scanf("%f,%f",&a,&b); c=max(a,b); printf("Max is %d\n",c); } max(float x, float y) { float z; z=x>y?x:y; return(z); } int型函数可不作函数说明 /*ch7_5.c*/ float add(float x, float y) { float z; z=x+y; return(z); } main() { float a,b,c; scanf("%f,%f",&a,&b); c=add(a,b); printf("sum is %f",c); } 被调函数出现在主调函数 之前,不必函数说明 main() { float add(float,float); float a,b,c; scanf("%f,%f",&a,&b); c=add(a,b); printf("sum is %f",c); } float add(float x, float y) { float z; z=x+y; return(z); } float add();
函数的调用:主调函数通过传递一定信息来使 用被调函数的功能 1() f11() {. main( 11(); 21() f1() 2() . 2() 11(); 31() 22()片 ★函数调用格式 函数名(实参表); 实参与形参个数相等,类型一致,顺序一一对 应,实参间用逗号隔开 实参表求值顺序,因系统而定(自右向左)
函数的调用:主调函数通过传递一定信息来使 用被调函数的功能 函数调用格式 函数名(实参表); 实参与形参个数相等,类型一致,顺序一一对 应,实参间用逗号隔开 ⚫实参表求值顺序,因系统而定(自右向左) f11( ) {.} f21( ) {.} f31( ) {.} f1( ) {. f11( ); .} f2( ) {. f11( ); f22( ); .} main( ) {. f1( ); . f2( ); .}