Programación General > C/C++

 inconveniente con typedef struct (c)

(1/1)

picope:
quería saber como resolver esto:

--- Código: C --- typedef struct {        node_t* prev;        void* data;        node_t* next;        }node_t;  
[DEV C me dice:   syntax error before "node_t"]

no puedo hacer un nodo que apunte a otros nodos porque no reconoce el tipo de dato  :brickwall: ...
hay alguna sintaxis que funcione? espero ayuda, desde ya gracias

ProfesorX:
Debes definir node_t antes de usarlo como tipo, la manera correcta seria:


--- Código: C++ --- typedef struct node_t {    node_t* prev;    void* data;    node_t* next;} node;  

picope:

--- Cita de: "ProfesorX" ---Debes definir node_t antes de usarlo como tipo, la manera correcta seria:


--- Código: C++ --- typedef struct node_t {    node_t* prev;    void* data;    node_t* next;} node;  
--- Fin de la cita ---
Gracias por tu ayuda! pero tampoco compila  :ouch: , así que urgando por ahí me encontré con la solución.. este es el código que a mi me funcionó:


--- Código: C ---typedef struct node{    struct node* prev;    void* data;    struct node* next;} node_t; 

ProfesorX:
Creo que el problema se debio a que era un archivo de C y no de C++, porque el codigo lo probe en C++ y si funcionaba, ya que siempre pruebo mis codigos antes de publicarlos.

En mi caso lo puse en un archivo con extension .cpp y funcionaba sin anteponer el struct dentro de la estructura, pero tu lo tenias en un archivo con extencion .c y dado que Dev-C o mas especificamente, mingw, que es en realidad el compilador, elige que compilador utiliza (C o C++) en base a le extencion del archivo, es por eso que marco error.

Pero si pruebas el codigo en un achivo con extencion .cpp compilara correctamente.

Saludos :)

Navegación

[0] Índice de Mensajes

Ir a la versión completa