gpt4 book ai didi

c - 错误#92 : Identifier-List Parameters May Only Be Used In A Function Definition

转载 作者:行者123 更新时间:2023-11-30 17:59:47 27 4
gpt4 key购买 nike

我正在尝试编译一些代码,但遇到了一些我似乎无法弄清楚的问题。最初,我有三个错误,但我已将其缩小到一个我似乎无法解决的错误。我现在正在使用三个文件:voltcon.c、mss_ace.c 和 mss_ace.h。我已将相关代码粘贴在下面:

在 mss_ace.c 内

    void ACE_init( void )
{
/* Initialize driver's internal data. */
ace_init_flags();

/* Initialize the data structures used by conversion functions. */
ace_init_convert();
}

void ACE_configure_sdd
(
sdd_id_t sdd_id,
sdd_resolution_t resolution,
uint8_t mode,
sdd_update_method_t sync_update
)
{
...
}

在 mss_ace.h 内

    typedef enum
{
SDD0_OUT = 0, /*!< Analog Module 0 Sigma Delta DAC */
SDD1_OUT = 1, /*!< Analog Module 1 Sigma Delta DAC */
SDD2_OUT = 2, /*!< Analog Module 2 Sigma Delta DAC */
NB_OF_SDD = 3
} sdd_id_t;

typedef enum
{
SDD_8_BITS = 0,
SDD_16_BITS = 4,
SDD_24_BITS = 8
} sdd_resolution_t;

#define SDD_CURRENT_MODE 1
#define SDD_VOLTAGE_MODE 0
#define SDD_RETURN_TO_ZERO 0
#define SDD_NON_RTZ 2

typedef enum
{
INDIVIDUAL_UPDATE = 0,
SYNC_UPDATE = 1
} sdd_update_method_t;

void ACE_init(void);

void ACE_configure_sdd(sdd_id_t sdd_id, sdd_resolution_t resolution, uint8_t mode, sdd_update_method_t sync_update);

在 voltcon.c 内

    #include <stdint.h>
#include <math.h>
#include <string.h>
#include <stdio.h>
#include "../../N3V2_hardware/biarri/firmware/drivers/mss_ace/mss_ace.h"

sdd_id_t this_sdd_id = SDD0_OUT;
sdd_resolution_t this_sdd_resolution = SDD_16_BITS;
uint8_t this_mode = SDD_VOLTAGE_MODE;
sdd_update_method_t this_sdd_update_method = INDIVIDUAL_UPDATE;

void ACE_init();

void ACE_configure_sdd(this_sdd_id, this_sdd_resolution, this_mode, this_sdd_update_method);

我收到的错误如下:

voltcon.c: error: #92: identifier-list parameters may only be used in a function definition

这个错误对我来说是它可能与我的函数的第三个参数有关。

---更新---该错误是由代码中的最后一行(void ACE_configure_sdd 行)引起的。对此我深表歉意。 #92 只是一个代码,它并不指代实际的代码行。

最佳答案

尝试从 voltcon.c 中删除 ACE_configure_sdd 的声明。因为它已经存在于 mss_ace.h 中。

您似乎正在尝试从 voltcon.c 调用 ACE_configure_sdd,但在 c 中您只能从另一个函数内部调用一个函数。

您可以尝试在 voltcon.c 中执行此操作:

void func1()
{
ACE_configure_sdd(this_sdd_id, this_sdd_resolution, this_mode, this_sdd_update_method);
}

现在 func1 可以从代码中的其他函数或 main() 本身调用。希望这会有所帮助。

关于c - 错误#92 : Identifier-List Parameters May Only Be Used In A Function Definition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11115795/

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