??? 07/28/06 11:32 Read: times |
#121251 - nameless struct member Responding to: ???'s previous message |
Just as an aside, note that x.y.z has no run-time penalty over x.y; in fact, x.y has no runtime penalty over w !
This is because the compiler can do all the necessary offset calculations at compile time. Of course, x->y->z is an entirely different matter...! Wouldn't that be x->y.z ? And allthough it can be calculated at compile time that doesn't mean all compilers also do that. but it will still be x.y.z instead of x.y Some C compilers support nameless struct members (non-standard!). If yours does you can leave out the sd name and access it as x.z typedef struct h { struct sd { U8 SDser[8] ; // serial number U8 SDaddr ; // address assigned to sign U8 SDdips ; // dipswitch setting U8 SDtype ; // type of sign U8 SDwidt ; // width U8 SDhgth ; // height }; U8 SDfill[256-sizeof(struct sd)-1] ; // fill struct to be 256 long // put this one last U8 SDerno ; // here store error number if FRAM match/update failed. } SIGN_DESC; |
Topic | Author | Date |
fixed size struct? | 01/01/70 00:00 | |
Not quite clear | 01/01/70 00:00 | |
thx, but | 01/01/70 00:00 | |
Confused! | 01/01/70 00:00 | |
the original question is \"can you define a struct | 01/01/70 00:00 | |
Possible in theory, but the code looks strange | 01/01/70 00:00 | |
figured the dummy out myself but that is the road | 01/01/70 00:00 | |
Doesn\'t have to look strange | 01/01/70 00:00 | |
got it, thanks | 01/01/70 00:00 | |
Aside - structure addressing | 01/01/70 00:00 | |
which is the case in one of the instances | 01/01/70 00:00 | |
nameless struct member![]() | 01/01/70 00:00 | |
union of structs | 01/01/70 00:00 | |
same as Andy | 01/01/70 00:00 | |
Pascal | 01/01/70 00:00 |