C又有白痴问题了~ 书上的一道例题,看不懂,如下:

来源:百度知道 编辑:UC知道 时间:2024/06/05 06:17:11
书上说,有几种情况可以省去主调函数中对被调函数的函数声明:
double d(double a);
float f(float b);
main()
{......
}
double d(double a)
{......
}
float f(float b)
{......
}
书上的解释是“一二行对d f函数预先进行了声明,所以无须对d f声明就可以调用”

但是。。。。。我根本就看不出来“省去了主调函数中对被调函数的函数声明” 下面调用的函数不是和一二行一样的吗???

double d(double a); /*这个叫函数原型,注意有分号,也可以放main里,用于函数的申明,告诉编译器函数的返回类型,参数类型等*/
double d(double a) /*这个是函数定义的起始部分,若把函数定义也就是是 double d(double a)
{......
} 放在main之前,也可以在main中省去函数的申明*/

呵呵 不太明白你问的问题

double d(double a);
float f(float b);
这两句对以上两个函数进行全局声明,即在以后的代码中可以在任何地方使用以上函数调用。
如果没有以上两名放在程序最开始,那么在main()中调用函数时应加上这两句啊!这就是声明。不过声明在main()中调用而己。

上面是函数声明,下面是函数定义。

函数调用并没有出现。

书上的意思是说,开始进行了函数声明,如一二行,就可以在主函数中直接调用,而不需要在主函数中再声明。如果没有一二行的声明,那么在主函数中调用d.f函 数前就必须声明一下,告诉编译器d,f是函数,否则,没有声明,在编译过程中会提示找不到d,f的错误。