@alephzero нет, компилятор не может переупорядочивать элементы в стандартных структурах компоновки.
тности, это возникло в дискуссии:
Мудрый расход памяти, есть ли вероятность, что с помощьюstruct
из двухint
займет больше памяти, чем просто дваint
s?
Или в языковых терминах:
#include <iostream>
struct S { int a, b; };
int main() {
std::cout << (sizeof(S) > sizeof(int) * 2 ? "bigger" : "the same") << std::endl;
}
$6Мудрый расход памяти, есть ли вероятность, что с помощью7$bigger
?
1Чтобы прояснить, что я имел в виду, это системы (и компиляторы), разработанные и произведенные в каком-то значимом количестве, а не теоретические примеры, сконструированные просто для того, чтобы доказать свою точку зрения, или одноразовые прототипы или творения любителей.