早教吧 育儿知识 作业答案 考试题库 百科 知识分享

关于C怨言函数的问题1.当被调函数的函数定义出现在主调函数之前时,在主调函数中可以不对被调函数作说明而直接调用.例5-5省略被调函数说明.floatadd(floatx,floaty){floatz;z=x+y;return(z);}

题目详情
关于C怨言函数的问题1.当被调函数的函数定义出现在主调函数之前时,在主调函数中可以不对被调函数作说明而直接调用. 例5-5 省略被调函数说明. float add(float x,float y) { float z; z=x+y; return(z); } main() { float a,b; scanf("%f,%f,"&a,&b); printf("sum is %f",add(a,b)); } 分析:该程序中,函数add的定义放在main函数之前,因此可在main函数中省去对add函数的函数说明float add(float x,float y).例5-2也属此种情况. 4.如果被调函数的返回值是整型或字符型时,可以不对被调函数作说明而直接调用。这时系统自动将被调函数返回值按整型处理。例5-1中,被调函数max返回值是整型,在主函数中可以省略说明。但是,当一个函数返回值为其他类型而在程序中又没有事先说明,则结果就会出错。 例5-7 被调函数返回值类型不是整型。 float s(int r) { return 3.14*r*r; } main() { int r,area; scanf("%d",&r); printf("%d\n",s(r)); } 程序运行结果: 2 -31457 分析:很明显程序结果不正确,但该程序在编译过程中并未报错。这是因为编译过程中系统无法对参数个数和类型进行检查,而在执行过程中出现了类型不匹配。因此,为了防止一些不必要的错误,也使程序更加清晰,建议在编写程序时都加上函数的原型说明。 大家好,这是从书上抄下来的,有点不懂,书中说如果被调函数的返回值类型是整型或者是字符型的话,可以不对被调函数作说明而直接调用。例5-5和例5-7都是省略了被调函数的说明而返回值也都不是整型和字符型,为什么例5-5没错而例5-7会出错。
▼优质解答
答案和解析
printf("sum is %f",add(a,b)); printf("%d\n",s(r)); 中的add(a,b)和s(r)这不是调用了吗?这也是一种调用的形式。 希望采纳。