Согласно стандарту, чтение члена профсоюза, отличного от последнего написанного, является неопределенным поведением. Союзы были разработаны для экономии места, а не для преобразования типов данных. Тем не менее, то, что вы делаете, вероятно, будет работать на всех основных платформах и компиляторах.