Was bedeutet die Definition einer anonymen Struktur innerhalb einer Struktur? Wann sollte dieses Konzept angewendet werden?Was nutzt es, anonyme Strukturen innerhalb einer Struktur zu deklarieren?
Antwort
ich es manchmal verwenden, um eine Verbindung zwischen einigen Daten zu erstellen:
typedef union {
struct {
int x, y, z;
};
int elements[3];
} Point;
Auf diese Weise kann ich einfach Schleife über die Koordinaten mit elements
, sondern auch die kürzeren Form verwenden x
, y
und z
statt elements[0]
usw.
Es ist völlig in Ordnung, wenn Sie nur ausdrücken möchten, dass zwei Werte zusammengehören, aber die bestimmte Gruppierung niemals als eigenständigen Typ benötigen.
Es könnte als ein bisschen pedandic und neigt zu der over-Engineering-Seite der Dinge gesehen werden, aber es kann auch als eine große Möglichkeit gesehen werden, um Klarheit und Struktur hinzuzufügen.
Bedenken Sie:
struct State
{
Point position;
float health;
int level;
int lives_left;
int last_checkpoint;
char filename[32];
};
gegen
struct State
{
struct
{
Point position;
float health;
int level;
int lives_left;
} player;
struct {
int last_checkpoint;
char filename[32];
} level;
}
Der letzte Fall eindeutig etwas schwieriger einrücken, aber es ist in einer sehr klaren Art und Weise auszudrücken, dass ein Teil der Werte mit den zugehörigen Spieler und einige mit dem Level.
- 1. Wo deklarieren Strukturen usw.?
- 2. C++ initialisiert anonyme Struktur
- 3. Deklarieren von Strukturen innerhalb von Funktionen in C
- 4. ABAP: So deklarieren Tabelle innerhalb Struktur
- 5. Go: Vergleichen anonyme Strukturen
- 6. Embedding einer benannten Struktur als anonyme Struktur in einer anderen Struktur
- 7. C# Wie kann ich ein Dictionary innerhalb einer Struktur deklarieren, die gemarshallt wird, um die Größe der Struktur zu erhalten?
- 8. Was ist JSR und was nutzt es?
- 9. Wie initialisiert man eine Struktur von Strukturen innerhalb einer Header-Datei in C?
- 10. Array von Strukturen - Struktur?
- 11. Leere Struktur oder anonyme Struktur als Tag
- 12. Access-Struktur innerhalb der Struktur mit Zeigern
- 13. einschließlich einer std :: map innerhalb einer Struktur? Ist es o.k?
- 14. Warum ist es möglich, eine Struktur und eine Nicht-Struktur mit dem gleichen Namen zu deklarieren?
- 15. Was nutzt die Syntax: =?
- 16. Siehe Enum innerhalb einer Struktur
- 17. Was nutzt "echo || true"?
- 18. was ist zu deklarieren Listener innerhalb von Java-Klasse
- 19. Was nutzt Deployment.Current.Dispatcher.BeginInvoke (() => {...})?
- 20. Was nutzt Log4j API?
- 21. Anonyme Strukturen in C gefunden in Unix-Kernel
- 22. Pointer innerhalb einer Struktur/Thread
- 23. Was nutzt dieser Code?
- 24. Was ist ein Spezialisierungsdiagramm und was nutzt es?
- 25. Bash: globale Variable innerhalb einer Funktion deklarieren
- 26. Coding Problem mit einem 2-d-Array von Strukturen innerhalb einer anderen Struktur in C
- 27. Was bedeutet es, wenn eine Struktur keine Identität hat?
- 28. Ist es möglich, mehrere Variablen innerhalb einer Schleife basierend auf einer Zählung zu deklarieren?
- 29. Lesen von Datei zu Array von Strukturen innerhalb von Strukturen in C++
- 30. Wie kann ich eine Struktur mit den Werten einer identischen Struktur innerhalb einer Funktion füllen?
Natürlich kann eine solche Verwendung sehr undefiniert Verhalten sein. Nur weil jeder es tut, bedeutet es nicht, dass es gültig ist. :) – unwind