马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
使用函数名后跟实参列表就可以实现函数调用。例如: main { int; y=mul(10,5) printf("%d\n",y); } 当编译器遇到函数调用时,控制权转移到函数mul()。然后逐行运行该函数,遇到return语句时返回一个值。该值赋给y。 main() { inty; y=mul(10,5); ...... } intmul(int x,int y) { intp; p=x*y; return(p); } 函数调用给被调用函数发送两个整数10和5. int mul(int x,int y) 这两个整数分别赋给x和y。该函数计算x和y的乘积,将结果赋给局部变量p,然后返回值25给main函数,再把该值赋给y。 调用函数的方法有很多种。下面方法都能调用函数mul: (1)mul(10,5) (2)mul(m,5) (3)mul(10,n) (4)mul(m,n) (5)mul(m+5,10) (6)mul(10,mul(m,n)) (7)mul(expression1,expression2) 注意,第6种调用方法以自身的调用作为一个参数。当使用表达式作为函数的实参时,必须将它们计算成一个数值,从而作为实参传递。 返回一个值的函数可以像其他变量一样使用在表达式中。下面语句是合法的: printf("%d\n",mul(p,q)); y=mul(p,q)/(p+Q); if(mul(m,n)>total)printf("Large"); 但是,函数不能用在赋值语句的左边。例如,下面语句是非法的: mul(a,b)=15; 没有返回值的函数不能用在表达式中,但可以被调用来完成某些任务。这种函数可以以它们的函数名作为一个单独的语句来调用。 例如: main() { printline(); } 请注意被调用函数末尾有分号。 函数调用 函数调用时一个后缀表达式。运算符(…)的优先级非常高。因此,当函数调用作为表达式的一部分时,除非使用括号来改变优先顺序,否则首先计算函数。 在函数调用中,函数名为操作数,而括号集(…)为运算符,它包含着实参。实参必须与函数的形参在数据类型、顺序和数量上相匹配。多个实参必须用逗号分隔开。 注意: (1)
如果实参比形参多,那么多余的实参将被丢弃掉。 (2)
相反,如果实参比形参少,那么那些没有实参与之匹配的形参将被初始化为垃圾数据。 (3)
数据类型的任何不匹配都将导致产生垃圾数据。 凌阳教育,全国唯一一家原厂式嵌入式培训机构,专业从事嵌入式人才培训13年,最近新开课程信息安全工程师培训,想了解更多嵌入式资料下载或者是凌阳教育的动态,请访问凌阳教育官网www.sunplusedu.com。 |