我已经跨越了下面的代码来了,是C初学者,我来到这里对您有所帮助。在函数内部声明一个函数?
此功能是从一个队列的一个C implmentation。
Bool queuePut(Queue *q, char c)
{
void beep();
if (queueFull(q))
{
beep();
return false;
}
//do stuff
return true;
}
所以,我越来越用gcc一个奇怪的错误就作废了蜂鸣声()。有人可以请解释我是什么,在函数内部声明一个函数。或者它是无效的嘟嘟声()简直不合适?我被给了这个代码,并且总有可能它是不正确的。
编辑:错误我收到:
c:/djgpp/tmp/src/ccrjtmBh.o:queue.c:(.text+0x50): undefined reference to
'_beep'
collect 2: ld returned 1 exit status.
这是一个链接错误?
什么错误? ___ – kennytm 2010-03-20 19:59:18
是的,这是一个链接错误。你不仅需要声明你使用的每个函数 - 你还必须定义它们,或者链接到定义函数的库。由于你的库没有定义'beep()',所以你必须这样做。 – 2010-03-20 20:15:45
而且,作为一般规则,函数应该在头文件和头文件中声明;在另一个内部声明一个函数就是为了以后的维护问题。 – 2010-03-20 20:16:59