Zugriff auf inaktiv union-Mitglied und Undefiniertes Verhalten?

War ich unter dem Eindruck, dass der Zugriff auf eine union Mitglied anderer als der Letzte gesetzt wird UB, aber ich kann nicht scheinen zu finden, eine solide Referenz (eine andere als Antworten zu fordern, es ist UB, aber ohne jegliche Unterstützung von der standard).

So, ist es Undefiniertes Verhalten?

C99 (und ich glaube, dass C++11) explizit zulassen, Typ-Zweideutigkeiten mit den Gewerkschaften. Also ich denke, es fällt unter "implementation defined" Verhalten.
Ich habe es mehrmals zum konvertieren von einzelnen int zu char. Also, ich definitiv weiß, es ist nicht undefiniert. Ich habe es auf der Sun CC compiler. Also, es könnte immer noch compiler-abhängig.
Klar, man weiß nicht, was es bedeutet, für das Verhalten undefiniert. Die Tatsache, dass es schien, für Sie zu arbeiten, in einigen Instanz widerspricht nicht seiner undefinededness.
Verwandte: Zweck von Gewerkschaften in C und C++
der blog-Beitrag, den Sie verlinken, ist sehr spezifisch in Bezug auf C99; diese Frage ist tagged nur für C++.

InformationsquelleAutor Luchian Grigore | 2012-07-07

Schreibe einen Kommentar