C standards and committees (was Re: strangest systems I've sent email from)
mouse at Rodents-Montreal.ORG
Sun May 22 07:40:13 CDT 2016
>>> First off, the C standard mandates that the order of fields in a
>>> struct cannot be reordered,
>> Yes. (I think this is a Bad Thing, but I can see why they did it.)
> Given that C is a systems implementation language, how would you
> define HW related data structures where the order of the fields is
> critical (ie HW defines them).
I can see three answers.
1) Don't use structs for that. Look at NetBSD's bus-space abstraction
for one possible way.
2) Make any reordering implementation-defined, so that code for
specific implementations can know how the implementation does it.
3) Make reordering optional. Which way the default should go is
arguable; since my guess is that most structs are not
hardware-interface structs, the default should be reordering, with
some keyword specifying no reordering.
/~\ The ASCII Mouse
\ / Ribbon Campaign
X Against HTML mouse at rodents-montreal.org
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B
More information about the cctalk