En algún código que vi hace poco no existía una estructura definida de esta manera:Etiqueta de estructura y nombre, ¿por qué se declara una variable local como compilación de nombre?
typedef struct tagMyStruct {
int numberOne;
int numberTwo;
} MYSTRUCT;
mi modo de entender esto, tagMyStruct
es el nuevo tipo de datos y MYSTRUCT
es una variable que se crea allí mismo.
En otro lugar, esto se usó como esto:
MYSTRUCT *pStruct = new MYSTRUCT;
y compila bien con Visual Studio 2010. ¿Cómo es que C++ válida? Pensé que MYSTRUCT
era una variable y no un tipo?
Vaya, tiene usted razón. Me perdí ese ampersand allí. – bastibe
@BastiBechtold: No es un signo comercial. Es un asterisco. Ampersand is & :) –
¿Desde cuándo es 'nuevo' válido en C? Además, vale la pena enfatizar que este uso de 'typedef' es innecesario y generalmente una mala idea en C++, exactamente porque C++ no requiere que use la palabra clave' struct' como parte del nombre de tipo de la forma en que lo hace C. (Aunque a veces estás atrapado porque estás interoperando con el código C heredado). –