![](/img/trans.png)
[英]error: a parameter list without types is only allowed in a function definition
[英]Error #92: Identifier-List Parameters May Only Be Used In A Function Definition
我正在尝试编译一些代码,但是遇到了一些似乎无法解决的问题。 最初,我有3个错误,但我将其缩小到我似乎无法解决的错误。 我现在正在使用三个文件: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:错误:#92:标识符列表参数只能在函数定义中使用
这个错误告诉我的是,它可能与函数的第三个参数有关。
---更新---错误是由代码的最后一行(无效的ACE_configure_sdd)引起的。 我对此表示歉意。 #92只是一个代码,它没有引用实际的代码行。
尝试从voltcon.c
删除ACE_configure_sdd
的声明。 因为它已经在mss_ace.h
。
似乎您正在尝试从voltcon.c
调用ACE_configure_sdd
,但在c
您只能从另一个函数内部调用一个函数。
您可以尝试在voltcon.c
执行此voltcon.c
:
void func1()
{
ACE_configure_sdd(this_sdd_id, this_sdd_resolution, this_mode, this_sdd_update_method);
}
现在可以从代码中的其他函数或main()本身调用func1。 希望这可以帮助。
voltcon.c中的最后一行似乎是函数ACE_configure_sdd的声明,但缺少其变量的类型声明。 这就是为什么出现错误“错误:#92”的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.