• Domingo 15 de Diciembre de 2024, 04:56

Autor Tema:  inconveniente con typedef struct (c)  (Leído 1539 veces)

picope

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
inconveniente con typedef struct (c)
« en: Miércoles 4 de Agosto de 2010, 01:36 »
0
quería saber como resolver esto:
Código: C
  1.  
  2. typedef struct {
  3.         node_t* prev;
  4.         void* data;
  5.         node_t* next;
  6.         }node_t;
  7.  
  8.  

[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

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: inconveniente con typedef struct (c)
« Respuesta #1 en: Miércoles 4 de Agosto de 2010, 05:02 »
0
Debes definir node_t antes de usarlo como tipo, la manera correcta seria:

Código: C++
  1.  
  2. typedef struct node_t {
  3.     node_t* prev;
  4.     void* data;
  5.     node_t* next;
  6. } node;
  7.  
  8.  

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

picope

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: inconveniente con typedef struct (c)
« Respuesta #2 en: Jueves 5 de Agosto de 2010, 04:47 »
0
Cita de: "ProfesorX"
Debes definir node_t antes de usarlo como tipo, la manera correcta seria:

Código: C++
  1.  
  2. typedef struct node_t {
  3.     node_t* prev;
  4.     void* data;
  5.     node_t* next;
  6. } node;
  7.  
  8.  
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
  1. typedef struct node{
  2.     struct node* prev;
  3.     void* data;
  4.     struct node* next;
  5. } node_t;
  6.  

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: inconveniente con typedef struct (c)
« Respuesta #3 en: Jueves 5 de Agosto de 2010, 20:01 »
0
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 :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================