Programación General => C/C++ => Mensaje iniciado por: AnioN en Sábado 10 de Junio de 2006, 15:25
Título: Typedef
Publicado por: AnioN en Sábado 10 de Junio de 2006, 15:25
que diferencia hay entre estos dos codigos.
Código: Text
typedef struct {
int a;
}tpo_elemento;
y
Código: Text
typedef struct nodo {
int a;
}tipo_elemento;
Título: Re: Typedef
Publicado por: robbie110487 en Sábado 10 de Junio de 2006, 17:44
El primer codigo corresponde a una estructura anonima que puede utilizarse a traves de su typedef Ejemplo:
Código: Text
typedef struct {double re, im; } COMPLEX;
......
COMPLEX c, *ptrc, arrc[10]
Y en el segundo codigo estas poniendo nombre a la estructura al mismo tiempo que se declara el typedef Ejemplo:
Código: Text
typedef struct C1 {double re, im;} COMPLEX;
...
C1 c, *ptrc;
COMPLEX Arrc[10];
Aunque no es usual utilizar el alias y el nombre simultaneamente.
Fuente y para mas info sobre typedef : http://www.zator.com/Cpp/E3_2_1a.htm (http://www.zator.com/Cpp/E3_2_1a.htm)
Un saludo :hola:
Título: Re: Typedef
Publicado por: AnioN en Sábado 10 de Junio de 2006, 18:11
o sea que ambos casos son iguales, no?, se esta creando un alias de una estructura con la unica diferencia que en la primera es anonima y en la otra no. En este caso:
Código: Text
typedef struct nodo {
int a;
}tipo_elemento;
es lo mismo:
Código: Text
struct nodo a;
tipo_elemento a;
Pero en este caso:
Código: Text
typedef struct {
int a;
}tipo_elemento;
solo se puede declarar:
Código: Text
tipo_elemento a;
porque si es anonima y no se crear un alias no se puede declara una variable de ese tipo no?
Título: Re: Typedef
Publicado por: robbie110487 en Sábado 10 de Junio de 2006, 18:32
Asi es, exactamente como lo has definido, puedes usar cualquiera de las 2, pero en caso de que no sea anonima, puedes usar el nombre de la estructura o el alias...
Título: Re: Typedef
Publicado por: AnioN en Sábado 10 de Junio de 2006, 23:38