②预先统一说明—函数说明通常放在所有函数 定义体之前。 在这种方式下,所有调用函数都无需再对自定义 函数进行说明。 例如,在[案例7.1]中,可以将对max)函数的说明 放在程序文件开始处: void main(void int max(int n1,int n2): 2024/10/28 11
2024/10/28 11 ②预先统一说明——函数说明通常放在所有函数 定义体之前。 在这种方式下,所有调用函数都无需再对自定义 函数进行说明。 例如,在[案例7.1]中,可以将对max()函数的说明 放在程序文件开始处: void main( void ) { int max(int n1, int n2); . }
显然,对于被多个函数调用的自定义函数而言, 采用预先统一说明方式进行说明,可以有效地减少函 数说明次数。 注意:如果被调用函数的定义体,出现在调用函 数之前,可以缺省说明。 2024/10/28 12
2024/10/28 12 显然,对于被多个函数调用的自定义函数而言, 采用预先统一说明方式进行说明,可以有效地减少函 数说明次数。 注意: 如果被调用函数的定义体,出现在调用函 数之前,可以缺省说明
2、函数调用 函数名([实参表]) 例如,在案例7.1的主函数中: printf代.,max(numl,num2)): 注意:调用有参函数,必须提供实参(常量/变量/表 达式/函数)。调用时,实参必须具有确定的值,且与形 参个数相等、类型匹配。 2024/10/28 13
2024/10/28 13 2、函数调用 函数名([实参表]) 例如,在[案例7.1]的主函数中: printf(., max (num1, num2) ); 注意:调用有参函数,必须提供实参(常量/变量/表 达式/函数) 。调用时,实参必须具有确定的值,且与形 参个数相等、类型匹配
()调用方式 ①语句方式—无返回值函数的调用,可作为 一条独立的语句。 例如,printf()、scanf()等库函数的调用,均作为 一条独立的语句。 ②表达式方式一有返回值函数作为表达式的 一项,以函数返回值参与表达式的运算。 例如,“max=maxX,y)”是一个赋值表达式,把 max)函数的返回值赋予变量max。 2024/10/28 14
2024/10/28 14 (1) 调用方式 ① 语句方式——无返回值函数的调用,可作为 一条独立的语句。 例如,printf()、scanf ()等库函数的调用,均作为 一条独立的语句。 ② 表达式方式——有返回值函数作为表达式的 一项,以函数返回值参与表达式的运算。 例如,“max = max(x, y)”是一个赋值表达式,把 max()函数的返回值赋予变量max
(2)断点与函数调用的返回 断点—被调用函数执行完毕,返回调用函数后 继续执行的位置。 调用函数中的断点位置分两种情况: ①语句调用方式:断点为函数调用语句的下一条 语句。 例如,[案例7.1]中的语句调用“printf(.)”, 其断点为该语句的下一条语句“getch();”。 2024/10/28 15
2024/10/28 15 (2) 断点与函数调用的返回 断点——被调用函数执行完毕,返回调用函数后 继续执行的位置。 调用函数中的断点位置分两种情况: ① 语句调用方式:断点为函数调用语句的下一条 语句。 例如,[案例7.1]中的语句调用“printf(.);”, 其断点为该语句的下一条语句“getch();”