| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
Txantxiku
Registrado: 11 Dic 2011 Mensajes: 15
| Publicado: 11/01/2012 1:34 am | | | Título: ¿Por qué usar typedef con estructuras? |
| En el libro que estoy usando crea una estructura y con typedef la define como un nuevo tipo. Pero a mí me parece que no es necesario. Creo que al crear la estructura y darle un nombre ya se puede usar como un tipo nuevo. Este es el ejemplo: //: C03:SelfReferential.cpp // Allowing a struct to refer to itself
typedef struct SelfReferential { int i; SelfReferential* sr; // Head spinning yet? } SelfReferential;
int main() { SelfReferential sr1, sr2; sr1.sr = &sr2; sr2.sr = &sr1; sr1.i = 47; sr2.i = 1024; } ///:~ Si en su lugar escribo este código creo que el comportamiento es idéntico: //: C03:SelfReferential.cpp // Allowing a struct to refer to itself struct SelfReferential { int i; SelfReferential* sr; // Head spinning yet? } ;
int main() { SelfReferential sr1, sr2; sr1.sr = &sr2; sr2.sr = &sr1; sr1.i = 47; sr2.i = 1024; cout<<sr1.sr<<endl<<sr2.sr<<endl<<sr1.i<<endl<<sr2.i; } ///:~ Supongo que estaré equivocado pero si alguien me pued explicar cuál es la diferencia entre usar typedef o no hacerlo se lo agradecería. _________________
Las mejores escenas de la historia del cine |
| | Volver arriba | |  | cheroky
Registrado: 22 Sep 2005 Mensajes: 2479 Ubicación: Valladolid (España)
| Publicado: 11/01/2012 2:25 am | | | Título: |
| Hola.
typedef no crea un nuevo tipo, simplemente añade nombres (alias) ya sea para tipos atómicos o agregados.
En C++ (que no C) es innecesario declarar struct mediante typedef ya que es inocuo, salvo que se quiera tener distintos alias para un mismo tipo de agregado (struct, clas, etc).
·?0ƒ· _________________ La cuestión no es si hay vida inteligente en otros planetas lejanos. La cuestión es si hay vida inteligente aquí. |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |