You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言传递枚举为函数参数时出现“Parameter name omitted”错误的排查

问题解答

你遇到的“Parameter name omitted”错误,根源是函数定义的参数写法不符合C语言语法要求,具体问题有两点:

  • 第一个参数otherData只写了参数名,没有声明它的数据类型,C语言要求每个函数参数必须明确指定类型。
  • 第二个参数只写了枚举类型enum FPGA_IO_Type,没有给参数起名字——函数定义时,除了可变参数等特殊情况,每个参数都需要同时包含类型和参数名,不然编译器无法在函数体内识别和使用这个参数。

正确的函数定义示例

假设otherData的实际类型是uint32_t,你需要把函数定义改成这样:

// 补全参数类型和参数名
static void _function(uint32_t otherData, enum FPGA_IO_Type io_type) {
    // 函数体逻辑
}

调用示例

之后调用时就可以正常传入枚举值:

_function(0x1234, A429_RX);

额外说明:C语言的函数声明可以省略参数名(比如static void _function(uint32_t, enum FPGA_IO_Type);),但函数定义必须给每个参数都指定名字,否则编译器会报错。

内容的提问来源于stack exchange,提问作者Brandon Pieczarka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 19:01:13