preguntilla
hola!queria hacer una pregunta sencilla haber si me la puede contestar alguien, cuando declaro un nuevo tipo de datos con typedef, como por ejemplo :
struct typedef nodo{
int valor;
struct hoja *derecho;
struct hoja *izquierdo;
}hoja;
bien, una vez creado este nuevo tipo de dato si lo quiero usar fuera del archivo donde lo he declarado, ¿he de incluir su declaracion en un archivo de cabeceras y luego incluir ese archivo de cabecera donde yo lo quiera usar o basta simplemente con poner extern?esa era mi pregunta, gracias por la atencion. Saludos.
struct typedef nodo{
int valor;
struct hoja *derecho;
struct hoja *izquierdo;
}hoja;
bien, una vez creado este nuevo tipo de dato si lo quiero usar fuera del archivo donde lo he declarado, ¿he de incluir su declaracion en un archivo de cabeceras y luego incluir ese archivo de cabecera donde yo lo quiera usar o basta simplemente con poner extern?esa era mi pregunta, gracias por la atencion. Saludos.
¿Qué tal MAKI?
Supongo que quisiste decir:
typedef struct nodo {
int valor;
struct hoja *derecho;
struct hoja *izquierdo;
} hoja;
lo significa que has declarado la estructura "nodo", así como que "hoja" es una nueva forma de decir
struct nodo {/*...*/};
Entonces, a partir de acá se puede poner:
struct nodo unNodo;
hoja unNodo;
ya que ahora las dos expresiones son equivalentes.
Entonces, si esta declaración está en un archivo de cabecera (un .h), tendrás que incluirlo en donde la vayas a usar (#include...); si es global, extern le dice al compilador que está definida en otro lado.
Alejadnro
Supongo que quisiste decir:
typedef struct nodo {
int valor;
struct hoja *derecho;
struct hoja *izquierdo;
} hoja;
lo significa que has declarado la estructura "nodo", así como que "hoja" es una nueva forma de decir
struct nodo {/*...*/};
Entonces, a partir de acá se puede poner:
struct nodo unNodo;
hoja unNodo;
ya que ahora las dos expresiones son equivalentes.
Entonces, si esta declaración está en un archivo de cabecera (un .h), tendrás que incluirlo en donde la vayas a usar (#include...); si es global, extern le dice al compilador que está definida en otro lado.
Alejadnro
