"Nick Sabalausky" <a...@a.a> wrote in message news:hbonj3$u3...@digitalmars.com... > "AJ" <a...@nospam.net> wrote in message news:hboa9p$5m...@digitalmars.com... >> >> "Walter Bright" <newshou...@digitalmars.com> wrote in message >> news:hbo5il$2sn...@digitalmars.com... >>> AJ wrote: >>>> How can/does D guarantee that "int" will always be 32 bits on all >>>> platforms? >>> >>> The implementation on a platform must implement it that way. >>> >>>> Does this mean that D won't work on some platforms? >>> >>> You can make anything work on any platform >> >> How do you make ABC below work on a platform that requires 32-bit >> integers to be aligned on 32-bit boundaries while keeping the layount and >> size of ABC the same as on a platform that has no such alignment >> requirement? >> >> struct ABC >> { >> byte a; >> int b; // may be improperly aligned on some platforms >> int64 c; // same issue >> }; >> >> > > It can be done by using bitmasks and bit shifting on every access. >
I had a feeling I was delving into "dangerous territory" (read, way too low level for me, but I wonder what the possibilities are). I have a feeling that I may be wanting hardware standardization because it can't be "solved" at the language level (?). I don't understand how using bitmasks and bit shifting on every access would work, the plausibility of it, and the cost (in execution time) of doing so.