gpt4 book ai didi

c - 在函数内部声明一个函数?

转载 作者:太空狗 更新时间:2023-10-29 14:58:21 26 4
gpt4 key购买 nike

我遇到了以下代码,作为一个 C 初学者,我来到这里寻求您的帮助。

此函数来自队列的 c 实现。

Bool queuePut(Queue *q, char c) 
{
void beep();

if (queueFull(q))
{
beep();
return false;
}

//do stuff

return true;
}

所以,我在 gcc 的 void beep() 上遇到了一个奇怪的错误。有人可以解释一下这是什么,在函数内部声明一个函数。还是 void beep() 只是不合适?我得到了这段代码,但它总是有可能不正确。

编辑:我得到的错误:

c:/djgpp/tmp/src/ccrjtmBh.o:queue.c:(.text+0x50): undefined reference to
'_beep'
collect 2: ld returned 1 exit status.

这是链接错误吗?

最佳答案

很可能您遇到链接错误是因为:

void beep();

是必须在别处定义的函数的原型(prototype)。在 C 中,您不能在另一个函数中定义一个函数。请详细说明您遇到的错误。

关于c - 在函数内部声明一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2484501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com