Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-12-2004
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
Post Diferencia conceptual entre struct y typedef struct

Hola a todos,
Ya se que esta no es la clase de pegunta que solemos hacer, aca viene.

Cuando defino un estructura en C++ (remarco que C++, por no es igual en C), por ejemplo, un punto definido por sus coordenadas x y y:

Código:
struct Point {
  float x;
  float y;
};
Puedo utilizarlo simplemente declarando una variable de su tipo
Código:
Point P;
P.x = 10.3;
P.y = 3.5;
Ahora también puedo definirlo utilizando typedef:

Código:
typedef struct {
  float x;
  float y;
} Point;
y lo utilizo exactamente igual que antes.

Pero, en el primer caso estoy creando la variable, llamando al nombre de la estrcutura y en el segundo llamandolo por un "etiqueta" que le puse a la misma estructura.

Existe alguna diferencia cuando se crea la varaible?.
Son exactamente iguales?
Si son iguales, cual es la ventaja de usar el typedef?

Gracias

Crandel

pd: es importante tener los conceptos claros
__________________
[Crandel]
Responder Con Cita
  #2  
Antiguo 26-12-2004
Avatar de Edgar++
Edgar++ Edgar++ is offline
Miembro
 
Registrado: dic 2004
Ubicación: Buenos Aires
Posts: 15
Poder: 0
Edgar++ Va por buen camino
Holas! soy nuevo en el foro, pero voy a tratar de ayudar en lo que pueda

Si declarás la estructura asi:

Código:
struct Point{ 
float x, y;
};
entonces tendrías que declarar una variable de su tipo en C así:

Código:
struct Point punto;
pero en C++ tambien lo podes hacer así:

Código:
Point punto;
cosa que para hacerlo así en C tenes que declarar un tipo definido por el usuario así:

Código:
typedef struct Point Point;
Nota: Es válido declarar un tipo con el mismo nombre que una estructura, union o enumeración, ya que el compilador los trata de una forma especial.

En resumen, es conveniente declarar la estructura y la variable como se hace en C, para mayor compatibilidad (a no ser, claro, que se usen clases o cosas propias de C++), aunque la nueva forma de C++ es más coherente... No hay diferencia en cuanto a una declaración u otra, son exactamente lo mismo para C++, pero en C no compila la segunda alternativa...
Responder Con Cita
  #3  
Antiguo 27-12-2004
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
Hola Edgar, muchas gracias por la respuesta, en C lo tenia claro, pero la pregunta iva destinada especificamente a C++ que no estaba seguro como lo trataba.

Gracias

Crandel
__________________
[Crandel]
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:41:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi