gpt4 book ai didi

c - 函数返回枚举的参数名称省略错误

转载 作者:太空狗 更新时间:2023-10-29 11:18:57 25 4
gpt4 key购买 nike

我有一个使用 hrtimer 的驱动程序。对于以下函数定义,我得到了省略的参数名称

enum hrtimer_restart (hr_toggle)(struct hrtimer *hrt)
{

<some code>

}

这段代码有什么问题?我给出了一个有效的结构。

更新:我也尝试过使用不带括号的函数名。结果是一样的。我正在使用 ubuntu arm-linux-gnueabi-gcc 中现在可用的标准 arm gcc 编译器

最佳答案

“参数名称省略”是 GCC 系列编译器在函数定义中(自然地)省略参数名称时给出的错误,这在 C 中是不允许的。

最新的 Clang 和 GCC 版本实际上不反对上面的声明(假设 struct hrtimerenum hrtimer_restart 的定义),所以我猜你是不使用其中之一,而是使用不完全符合 C 规范的不同编译器。问题中的代码是正确的,不应拒绝。

如果是这样,它可能没有识别出函数名称允许放在括号中,并且错误地将 hrtimer_restart 解析为函数名称,将 hr_toggle 解析为类型第一个参数的(并且......在放弃之前还没有注意到 enum 不是返回类型 - 奇怪的做事顺序)。

从名称中删除括号,或者最好将编译器/编译器的设置更改为更完全兼容的设置,应该可以解决这个问题。

关于c - 函数返回枚举的参数名称省略错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26750931/

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