例如: int main( void int imax(intn,intm);/引用函数说明* printf(The maximum of %d and %dis%dⅦn”,3,5,imax(3,5)); return 0;
26 int main ( void ) { int imax ( int n , int m ) ; printf ( “The maximum of %d and \ %d is %d\n” , 3 , 5 , imax ( 3 , 5 ) ) ; return 0 ; } 例如: /*引用函数说明*/
int imax( int n, int m) int max i if n> m max =ng se max =m i return max i 27
27 int imax ( int n , int m) { int max ; if ( n > m ) max = n ; else max = m ; return max ; }
函数定义常见错误 a)嵌套定义函数 int f( int w) int i, j int g( int x) int a=0: 嵌套定义的函数 X=X a++; 28
28 int f ( int w ) { int i , j ; int g ( int x ) { int a = 0 ; x = x*a++ ; } …… } 4、函数定义常见错误 a) 嵌套定义函数 嵌套定义的函数
b)形式参数表错误 例:intf(intx,y)/函数头部错误(语法错)*/ c)例:intf(intx,inty);/函数说明而非函数定义* d)函数体中出现与形式参数同名的变量声明 例:intf(intx) { float x;…}/语法错* e)试图用一个 return e;返回一个以上的值 例: return x,y;/仅返回y,语法对,但语义错/ return x; return y;/ return y;不可能执行*/
29 b) 形式参数表错误 例:int f ( int x , y ) /*函数头部错误(语法错)*/ { …… } c) 例:int f ( int x , int y ) ;/*函数说明而非函数定义*/ { …… } d) 函数体中出现与形式参数同名的变量声明 例:int f ( int x ) { float x ; …… } /* 语法错 */ e) 试图用一个 return e ; 返回一个以上的值 例: return x , y ; /* 仅返回y, 语法对,但语义错*/ return x; return y; /* return y;不可能执行*/
83函数的值与及 return语句 当被调用函数执行到最后的“}”处或遇到一条 return语句时,便返回到调用者。 若函数作为单一的表达式语句被调用,则返回 到该表达式语句的下一条语句处执行; 若作为表达式中的运算分量调用,则返回到该 函数调用的表式所在的语句,用返值代替调用形式。 非void型函数总要返回给调用者一个值,返回值 的类型由定义时给出的函数类型决定
30 8.3 函数的值与及return 语句 当被调用函数执行到最后的“}”处或遇到一条 return语句时,便返回到调用者。 若函数作为单一的表达式语句被调用,则返回 到该表达式语句的下一条语句处执行; 若作为表达式中的运算分量调用,则返回到该 函数调用的表式所在的语句,用返值代替调用形式。 非void型函数总要返回给调用者一个值,返回值 的类型由定义时给出的函数类型决定