¿De qué sirve definir una estructura anónima dentro de una estructura? ¿Cuándo se debe usar este concepto?¿De qué sirve declarar estructuras anónimas dentro de una estructura?
8
A
Respuesta
8
veces lo uso para crear una unión entre algunos datos:
typedef union {
struct {
int x, y, z;
};
int elements[3];
} Point;
De esta manera puedo fácilmente bucle sobre las coordenadas con elements
sino también usar la forma corta x
, y
y z
en lugar de elements[0]
etc.
3
Está perfectamente bien si solo quiere expresar que dos valores pertenecen juntos, pero nunca necesita la agrupación en particular como un tipo independiente.
Puede ser visto como un poco pedante y inclinado hacia el lado de la ingeniería, pero también puede verse como una gran forma de agregar claridad y estructura.
considerar:
struct State
{
Point position;
float health;
int level;
int lives_left;
int last_checkpoint;
char filename[32];
};
frente
struct State
{
struct
{
Point position;
float health;
int level;
int lives_left;
} player;
struct {
int last_checkpoint;
char filename[32];
} level;
}
El último caso es un poco más difícil para sangrar con claridad, pero sí expresa de un modo muy claro que algunos de los valores están asociados con el jugador, y algunos con el nivel.
Cuestiones relacionadas
- 1. Malloc de matrices y estructuras dentro de una estructura
- 2. ¿Por qué C++ no permite estructuras anónimas?
- 3. ¿Dónde declarar estructuras, etc.?
- 4. ¿De qué sirve escribir una clase dentro de una interfaz?
- 5. C# matriz dentro de una estructura
- 6. Asesoramiento/discusión sobre estructuras de datos "autorreferenciales" anónimas
- 7. Declarar una enumeración dentro de una clase
- 8. ¿Declarar una función dentro de una función?
- 9. Estructuras anónimas en C encontradas en Unix Kernel
- 10. ¿Por qué no podemos declarar una variable estática dentro de una estructura en el lenguaje de programación C?
- 11. ¿Por qué C++ 11 no admite estructuras anónimas, mientras que C11 sí?
- 12. ¿Para qué sirve crear una clase dentro de la interfaz e interfaz dentro de la clase
- 13. Declarar una clase dentro de un módulo
- 14. ¿Hay alguna forma de crear estructuras anónimas en C#?
- 15. Reenviar declarar una estructura en Objective-C
- 16. Memoria dinámica dentro de una estructura
- 17. ¿Por qué no podemos inicializar miembros dentro de una estructura?
- 18. Una función dentro de una estructura if
- 19. Declarar una clase o estructura dentro de un método en C#
- 20. matrices dentro de estructuras en C
- 21. Asignación de memoria para una cadena dentro de una estructura
- 22. ¿De qué sirve Control.Category?
- 23. Lectura de una estructura dentro de una estructura mediante la función de desempaquetado de PHP
- 24. ¿Para qué sirve generator.throw()?
- 25. declarar delante un typedef de una estructura sin nombre
- 26. ¿Cómo declarar una variable dentro de una función de esquema?
- 27. Declarar una instancia de una clase dentro de esa clase
- 28. ¿Puedo declarar "using namespace" dentro de una clase de C++?
- 29. ¿Declarar muchas clases idénticas anónimas desperdicia memoria en Java?
- 30. ¿Cuál es la forma sintácticamente correcta de declarar una estructura C?
Por supuesto, dicho uso podría ser un comportamiento indefinido. Solo porque todos lo hagan, no significa que sea válido. :) – unwind