4.4.2函数调用的方式 1.函数语句 不要求函数带回一个值,只是要求函数完成一定的 操作。 2.函数表达式 函数出现在一个表达式中,这时要求函数带回一个 确定的值以参加表达式的运算。如c=2*max《a,b); 3.函数参数 函数调用作为一个函数的实参。如 m=max(max(a,b),max(c,d)); 2017年4月26日12时17分 HOM正 第4章函数与预处理 17 BACK NEXT
HOME2017年4月26日12时17分 第4章 函数与预处理 17 1. 函数语句 不要求函数带回一个值,只是要求函数完成一定的 操作。 2. 函数表达式 函数出现在一个表达式中,这时要求函数带回一个 确定的值以参加表达式的运算。如c=2*max(a,b); 3. 函数参数 函数调用作为一个函数的实参。如 m=max(max(a,b),max(c,d));
例4.3对被调用的函数作声明。 #include <iostream> using namespace std; int main() float add(float x,float y); W对add函数作声明 float a,b,c; cout<<"please enter a,b:" cin>>a>>b; c=add(a,b); cout<<"sum="<<c<<endl; return 0; float add(float x,float y) ∥定义add函数 float z; z=x+y; return (Z); 2017年4月26日12时17分 HOM正 第4章函数与预处理 18 BACK NEXT
HOME2017年4月26日12时17分 第4章 函数与预处理 18 #include <iostream> using namespace std; int main( ) { float add(float x,float y); //对add函数作声明 float a,b,c; cout<<"please enter a,b: "; cin>>a>>b; c=add(a,b); cout<<"sum="<<c<<endl; return 0; } float add(float x,float y) //定义add函数 { float z; z=x+y; return (z); }
定义和声明的区别 定义是指对函数功能的确立,包括指定函数名、函 数类型、形参及其类型、函数体等,它是一个完整 的、独立的函数单位。 声明是把函数名、函数类型、形参及其类型通知编 译系统。 017年4月26日12时17分 HOME 第4章函数与预处理 19 BACK NEXT
HOME2017年4月26日12时17分 第4章 函数与预处理 19 定义是指对函数功能的确立,包括指定函数名、函 数类型、形参及其类型、函数体等,它是一个完整 的、独立的函数单位。 声明是把函数名、函数类型、形参及其类型通知编 译系统
在函数声明中可以只写形参的类型,如 float add(float a,float b); 称为函数原型(function prototype)。 编译系统并不检查参数名。 它的作用主要是: 根据函数原型在程序编译阶段对调用函数的合法性 进行全面检查。 2017年4月26日12时17分 HOM正 第4章函数与预处理 20 BACK NEXT
HOME2017年4月26日12时17分 第4章 函数与预处理 20 在函数声明中可以只写形参的类型,如 float add(float a,float b); 称为函数原型(function prototype)。 编译系统并不检查参数名。 它的作用主要是: 根据函数原型在程序编译阶段对调用函数的合法性 进行全面检查
说明: ()一般都把main函数写在最前面,这样对整个程序 的结构和作用一目了然,然后再具体了解各函数的 细节。 此外,用函数原型来声明函数,还能减少编写程序 时可能出现的错误。由于函数声明的位置与函数调 用语句的位置比较近,因此在写程序时便于就近参 照函数原型来书写函数调用,不易出错。 (2)函数声明的位置可以在调用函数所在的函数中, 也可以在函数之外。 017年4月26日12时17分 HOME 第4章函数与预处理 21 BACK NEXT
HOME2017年4月26日12时17分 第4章 函数与预处理 21 (1) 一般都把main函数写在最前面,这样对整个程序 的结构和作用一目了然,然后再具体了解各函数的 细节。 此外,用函数原型来声明函数,还能减少编写程序 时可能出现的错误。由于函数声明的位置与函数调 用语句的位置比较近,因此在写程序时便于就近参 照函数原型来书写函数调用,不易出错。 (2) 函数声明的位置可以在调用函数所在的函数中, 也可以在函数之外