sind "anonyme Strukturen" Standard in c? Eine detaillierte Analyse
Einführung
Das Konzept der "anonymen Strukturen" in C hat Fragen zu ihrer Standardisierung und präzisen Natur aufgeworfen. Dieser Artikel zielt darauf ab, diese Probleme zu klären, indem die relevante Dokumentation untersucht und die subtilen Unterschiede zwischen verschiedenen Arten von anonymen Strukturen untersucht werden.
sind anonyme Strukturen nicht standardmäßig? Microsofts MSDN-Dokumentation, anonyme Strukturen (ohne Namen definiert) werden in c als nicht standardmäßig angesehen. Die ISO -C -Standards sprechen jedoch diesen Aspekt jedoch nicht explizit an.
anonyme Strukturen verstehen. Für die Erklärung unbenannter Strukturen (Strukturen ohne Namen), die so instanziiert und als regulär benannter verwendet werden können Strukturen.
anonyme Strukturen:
anonyme Strukturen beziehen das enthaltende Objekt. die distinction
Die Schlüsselunterschiede liegt in der Zugänglichkeit der Mitglieder. Im Falle von nicht genannten Strukturen sind die Mitglieder über den Standard -DOT -Operator (z. B. foo.bar) zugänglich, während anonyme Strukturen den direkten Zugriff auf Mitglieder erlauben, ohne den Strukturnamen anzugeben (z. B. foo.hi).
Standard vs. nicht standards
Der Standard definiert die Funktionalität unbenannter Strukturen, aber nicht spezifisch die "Anonymes" Verhalten direkter Zugriff auf Mitglieder. Daher wird Letzteres als nicht standardmäßiges Feature angesehen, das von bestimmten Compilern unterstützt wird. &&&] struct foo { struktur { int hi; int bye; } Bar; };
nicht standardarme anonyme Struktur:
struct foo { struktur { int hi; int bye; }; //
Im zweiten Beispiel können Mitglieder direkt zugegriffen werden:f.hi = 3; // Non-standard, compiler-dependent feature
Conclusion
Anonymous structures, as defined by their ability to directly access members from the containing object, are a non- Standardfunktion, die von bestimmten C -Compilern unterstützt wird. Standard C liefert die Funktionalität unbenannter Strukturen, aber die direkte Zugänglichkeit der Mitglieder ist nicht angegeben und wird nicht garantiert unterstützt.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3