黑马程序员技术交流社区

标题: 函数使用前要声明 [打印本页]

作者: zhudong100    时间: 2015-10-10 11:40
标题: 函数使用前要声明
需求:利用函数相互调用,实现求三个整数的平均值;
  1. int main(int argc, char* argv[])
  2. {
  3.         float avg(int x, int y,int z);
  4.         float result = avg(200,235,500);
  5.         printf("result = %.2f\n",result);
  6. }
  7. //求三个整数的平均值
  8. float avg(int x, int y,int z)
  9. {
  10.     int sum(int x,int y,int z);
  11.         return sum(x,y,z)/3.0f;
  12. }
  13. //求三个整数的和
  14. int sum(int x,int y,int z)
  15. {
  16.         return x+y+z;
  17. }
复制代码

总结:主调函数使用被调函数时,需要对被调函数进行声明;被调函数与主调函数是相对的:main函数是argv的主函数,argv是sum的主函数。
作者: jing397    时间: 2015-10-10 13:26
支持一下
作者: gaozp    时间: 2015-10-10 17:29
那被调函数在主调函数之后的时候,调用被调函数时,是不是要在主调函数声明一下
作者: wwf707542865    时间: 2015-10-10 22:47
{:3_46:}同学,继续加油,4各月后就是人生赢家了
作者: zhudong100    时间: 2015-10-15 13:02
gaozp 发表于 2015-10-10 17:29
那被调函数在主调函数之后的时候,调用被调函数时,是不是要在主调函数声明一下 ...

在Visual C++平台上尝试,需要声明;但是好像Xcode中,在返回值是int类型的函数中,位置位于主调函数后的被调函数也可以省略声明。
作者: zhudong100    时间: 2015-10-15 13:04
wwf707542865 发表于 2015-10-10 22:47
同学,继续加油,4各月后就是人生赢家了

谢谢,加油!
作者: stanfor    时间: 2015-10-15 13:57
本帖最后由 stanfor 于 2015-10-15 14:01 编辑
gaozp 发表于 2015-10-10 17:29
那被调函数在主调函数之后的时候,调用被调函数时,是不是要在主调函数声明一下 ...

是的,被调函数在主调函数之后,在主调函数的代码块中要对被调函数进行声明;
如果被调函数在主调函数前面,则主调函数在调用时可以不声明;
也可以在主调函数之前对被调函数进行全局声明;
除开这些,如果被调函数的返回值类型是int 类型,也可以把声明省略。
在多层嵌套调用函数时,如果要在主调函数中作被调函数声明,只需在相应主调函数中作被该主调函数调的函数的声明




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2