> But you finally said > > - you can not access it as int: > > that object (t.i) does not have a stored value therefore it > doesn't exist. (Your words, not mine -- and such sloppy wording gets you into trouble, the standard does not talk about any of this. It is one way of looking at it though). > This is what I understood from what you said, please correct me if I'm > wrong. > > However doing: > > int i = t.i; > > is defined in C (as long as there's no trap representation) even if 't.i' > object has no stored value. Actually, I think this is a GCC extension, and I was mistaken to say it is valid C99 before. Standard C allows you to read from t.d or t, but not t.i, after storing into t.d . Segher