例 函数带回不确定值 void printstar ( printstar ( {printf("*******") {printf("**********"): mainO main() {int a; [int a; a=printstar () a=printstar ( printf ("%d",a); printf ("%d",a) 编译错误! 输出: 米*********10 函数无返回值可省略return(仍有不确定的返回值) 定义成空类型void的函数,系统保证这个函数在返回 时不带任何返回值
printstar() {printf("**********"); } main() {int a; a=printstar(); printf("%d",a); } 例 函数带回不确定值 输出:**********10 void printstar() {printf("**********"); } main() {int a; a=printstar(); printf("%d",a); } 编译错误! 函数无返回值可省略return(仍有不确定的返回值) 定义成空类型void的函数,系统保证这个函数在返回 时不带任何返回值
例函数返回值类型转换 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);
例 函数返回值类型转换 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); }
§8.4函数的声明和调用 函数被正确定义后,不会自己执行自己,必 须通过被调用才能被执行;函数在被调用前 必须先定义,然后在主调函数中对其进行声 明,最后主调函数才能调用
§8.4 函数的声明和调用 函数被正确定义后,不会自己执行自己,必 须通过被调用才能被执行;函数在被调用前 必须先定义,然后在主调函数中对其进行声 明,最后主调函数才能调用
★函数的声明 冬对被调用函数要求: ●必须是已存在的被调函数,可以是库函 数或用户自定义函数 ●库函数:#include<*.h>(包含该库 函数定义的文件) ·用户自定义函数:函数声明(为使编译 系统在编译阶段对函数调用进行合法性 检查,即被调函数返回值类型、实参与 形参的类型和个数是否一致)。 ●函数定义只能一次,函数说明可以多次
函数的声明 ❖对被调用函数要求: ⚫必须是已存在的被调函数,可以是库函 数或用户自定义函数 ⚫库函数: #include <*.h>(包含该库 函数定义的文件) ⚫用户自定义函数: 函数声明(为使编译 系统在编译阶段对函数调用进行合法性 检查,即被调函数返回值类型、实参与 形参的类型和个数是否一致)。 ⚫函数定义只能一次,函数说明可以多次
函数声明形式: ●标准c形式: 函数类型 函数名(形参类型 [形参名],.); 函数类型 函数名(形参类型表列); doub le e mix(int a,double b); float big(char,int)
函数声明形式: ⚫标准c形式: 函数类型 函数名(形参类型 [形参名],. ) ; 函数类型 函数名(形参类型表列 ) ; double mix(int a,double b) ; float big(char , int ) ;