3 ms·
> If I’m a library author and release something which exports a struct… I can never change any of the struct’s internal data structures? Stucts in most modern
by bsder 4y ago
> If I’m a library author and release something which exports a struct… I can never change any of the struct’s internal data structures?
Stucts in most modern languages are NOT guaranteed to have any particular layout unless you explicitly ask for it--so you don't have that guarantee to begin with. This enables them to rearrange the struct for better packing or AoS/SoA transformations.
If someone grovels in your structs and gets burned, well, that's their own fault. I'll go further, if someone grovels in a library struct, they have failed. I'll go even further, if someone has to grovel in a library struct, the library has failed.
In addition, in embedded contexts I regularly have to grovel in structs to work out some bug. "static" is often the bane of my existence in C because compilers often throw away or hide references to those variables. However, they may be crucial to running down state.