Pregunta sobre algo básico

15/04/2004 - 13:01 por Sergio | Informe spam
Buenos dias.
Me ha asaltado una duda, al definir una estructura se hace lo siguiente

typedef struct nombrenuevo {
//las variables que incluyen
...
}otronombre;

Y luego se utiliza de la siguiente manera:

otronombre var;

Mi pregunta es la siguiente, ¿porque no se hace asi?

typedef struct nombrenuevo {
//las variables que incluyen
...
};

o en su defecto

struct nombrenuevo {
//las variables que incluyen
...
};

y utilizar:

nombrenuevo var;

Cuando estudié C/C++ en su momento lo aprendí asi, y siempre que he
leido algún código que incluia estructuras tb venía así. Lo cual hace
que me pregunte porque, si el compilador no da ningún warning ni error
(aunque no por eso quiere decir que es la mejor manera).

Ya se que la pregunta es de novatos, pero hay veces que aprendes, algo
lo usas y no sabes muy bien porque, como muestra un botón.

Gracias.
 

Leer las respuestas

#1 Rodrigo Corral [MVP]
15/04/2004 - 13:33 | Informe spam
A ver cada una de las posibilidades

struct {} s;

Define una variable s del tipo definido por struct, no define un tipo. De
esto se deriva la necesidad de usar typedef para definir un tipo.

struct S {} s;

Define una variable s, exactamente el mismo comportamiento que el caso
anterior.

typedef struct S {} s;

Define un tipo s, no una variable. Es la sintaxis mas habitual porque
funciona tanto en C como en C++ y define un tipo que es lo que habitualmente
queremos hacer.

typedef struct {} s;

Igual que el caso anterior.

struct S {...};

Solo es legal en C++ define un tipo S.

struct S {...} s;

Solo es legal en C++ define un tipo S y una variable s.

Espero que haya aclarado tus dudas...


Rodrigo Corral González [MVP]

microsoft.public.es.vc FAQ
http://vcfaq.europe.webmatrixhosting.net

Preguntas similares