Path: csiph.com!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: Hans-Peter Diettrich Newsgroups: comp.compilers Subject: Union C++ standard Date: Thu, 25 Nov 2021 11:11:04 +0100 Organization: Compilers Central Lines: 12 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <21-11-004@comp.compilers> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="44177"; mail-complaints-to="abuse@iecc.com" Keywords: C, standards Posted-Date: 26 Nov 2021 12:31:56 EST X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:2751 Can somebody explain why the access to members of a union is "undefined" except for the most recently written member? What can be undefined in a union of data types of the same typesize end alignment? Any member written will result in a unique bit/byte pattern in memory, whose reading may not make sense in a different type but undoubtedly is well defined. DoDi [I think it's undefined in a standards sense. In any individual implementation the result is predictable, but it's not portable. -John]