Estoy tratando de crear una estructura utilizada en dos archivos fuente .c para hacer una estructura de lista enlazada simple. Pensé que ahorraría tiempo para crear una estructura en el archivo de encabezado; sin embargo, aparece el error "analizar error antes de *".¿Definir estructuras autorreferenciales en un archivo de encabezado C (.h)?
Este es el código que estoy usando:
/*
* Structures.h
*
* Created on: Dec 17, 2011
* Author: timgreene
*/
#ifndef STRUCTURES_H_
#define STRUCTURES_H_
typedef struct list_struct {
int data;
struct list_struct* next;
struct list_struct* prev;
} list;
#endif /* STRUCTURES_H_ */
Edit: omití originalmente un detalle que es, en realidad estoy compilando con xcc de la cadena de herramientas XMOS. Todavía no entiendo que habría una diferencia en la sintaxis del archivo .h
.
¿Podría ser una bandera de compilación que estoy usando?
Aquí está la copia impresa de la consola:
xcc -O0 -g -Wall -c -MMD -MP -MF"filter.d" -MT"filter.d filter.o " -target=XC-1A -o filter.o "../filter.xc"
In file included from ../filter.xc:15:
Structures.h:13: error: parse error before '*' token
Structures.h:14: error: parse error before '*' token
Structures.h:15: error: parse error before '}' token
Su código compila bien para mí. (GCC 4.5). – Owen
Tenga en cuenta que los identificadores que comienzan con guiones bajos "_" están reservados y no deben utilizarse. –
Tu código es correcto; el error está en otra parte. –