| ??? 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 |



