今天看C语言书上说函数只能定义一次,而声明可以有好多个,请高手给我再详细解释一下,最好能给个例子

如题所述

首先要知道什么是函数申明什么是函数定义。。。函数申明就是只有返回类型+函数名(形参...);
就比如说 申明函数 void fun() ; 而函数的定义是函数的实现部分。比如:void fun() { ..... //具体实现语句 }

因为在C语言中不允许函数的重写,所以一个函数只能定义一次。。而函数申明是为了让调用它的其他函数能知道它的存在,就比如说:当你的main函数想调用 fun 函数时,如果fun函数在main函数的下面,具体如下:
void main() {
fun() ; // 调用fun函数

}
void fun() {
...... // 实现部分

}
这样的话系统就会报错。。因为main函数在调用fun函数时,没有发现到它。这是解决的办法有两个:1.把fun函数写到main函数的上面。2.在main函数里面或上面写上fun函数的申明 :void fun() ;

什么时候要多次用到函数申明呢? 其实答案很简单:当你的其他函数调用一个函数时如果被调用的函数没有在调用函数的前面都必须要用到函数申明,所以。。。追问

那我可以把调用的函数声名都写在最前面,这样所有的函数都可以调用了,这样可以吗?

追答

嗯。。。可以的。。以后学到工程的时候只要把这些函数申明写到你自己的头文件然后其他文件只要包含了你的头文件就可以调用你的函数了。。。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-06
你说的很对,举个例子来说吧,函数的定义就如同你建了所房子且我们国家规定一个人只能建一所房(尽管该例子可能不是很恰当,但是很能说明问题),而你的声明就如同你向人宣布你建房子的事情。
因此,你建房子只一次,可是这不妨碍你到处声明你在什么地方建了所房子,只要你不怕累,你可以坐在一个地方连续说100遍都没人管。
第2个回答  2013-01-06
void func(); //这个是函数func()的声明,可以多次出现

void func()
{
printf("这是函数定义里的...");
} //这个是函数func()的具体定义,只能定义一次