Error # 92: los parámetros de la lista de identificadores solo se pueden usar en una definición de función

Estoy intentando comstackr algo de código, pero me estoy topando con algunos problemas que parece que no puedo resolver. Originalmente, tuve tres errores, pero lo he reducido a uno que parece que no puedo resolver. Hay tres archivos con los que estoy trabajando en este momento: voltcon.c, mss_ace.c y mss_ace.h. He pegado el código correspondiente a continuación:

Dentro de 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 ) { ... } 

Dentro de 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); 

Dentro de voltcon.c

  #include  #include  #include  #include  #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); 

El error que estoy recibiendo es el siguiente:

voltcon.c: error: # 92: los parámetros de la lista de identificadores solo se pueden usar en una definición de función

Lo que me dice este error es que probablemente tenga que ver con el tercer argumento de mi función.

— Actualización — El error es causado por la última línea en el código (el void ACE_configure_sdd uno). Mis disculpas por eso. El # 92 es solo un código, no se refiere a las líneas reales de código.

Intente eliminar la statement de ACE_configure_sdd de voltcon.c . Como ya está ahí en mss_ace.h .

Parece que está intentando llamar a ACE_configure_sdd desde voltcon.c pero en c solo puede llamar a una función desde dentro de otra función.

Puedes intentar hacer esto en voltcon.c :

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

ahora se puede llamar a func1 desde alguna otra función en su código o main (). Espero que esto ayude.

La última línea dentro de voltcon.c parece ser la statement de la función ACE_configure_sdd, pero carece de declaraciones de tipo de sus variables. Es por esto que salió el error “error: # 92”.