4 ms·
yeah C will be order defined in code, rust will reorder to save space unless you attribute it not to. interesting trivia a blind guy wrote the reordering code.
by gameswithgo 5y ago
yeah C will be order defined in code, rust will reorder to save space unless you attribute it not to. interesting trivia a blind guy wrote the reordering code. if anyone knows his name please post.
- masklinn 5y agoThe rust structure is defined as repr(C) so there is no reordering.
- sumtechguy 5y agoDoes the C spec actually specify it needs to be in that order? Been awhile since I messed that that sort of thing. I know in practice they typically just put them in the same order and align on some sort of default packing depending on CPU. Usually to minimize on extra instructions. I have eeked out some extra perf on some CPUs and structs just by moving stuff around and making sure it fits into a cacheline. Sometimes the extra instructions are worth it to unpack some vars if you can get the data into a cacheline. But that depends on your data and usage.
- kzrdude 5y agoYes, it does
- kzrdude 5y agoImplemented in https://github.com/rust-lang/rust/pull/37429 https://github.com/rust-lang/rust/pull/37429 ; his website seems to be https://ahicks.io/ https://ahicks.io/