оптимального размера?
А по какой должны?
если кратко: было бы круто, но по исторической
по той что c++ такой язык. как программист описал, так и будет.
ну а какой в этом практический смысл? Если кому-то нужна такая тонкая настройка сделали бы это опциональным.
А если мне надо чтобы они лежали в каком-то определённом порядке?
ну хотя да не подумал, иногда надо, но в любом случае лучше бы сделали атрибут для этого как в шарпе чем делать это по-умолчанию, конечно это обсер си, а не си++
А какой практический смысл в оптимальном размере? Одному нужна привязка к полям в протоколе, другому минимальный размер структуры, третьему максимальная скорость работы со структурой в конкретном алгоритме. Три этих цели могут мешать друг другу, и что тогда считать оптимальным?
ну потому-что остальные варианты - редкие, смысл из-за них думать каждый раз, размер важен почти в любой программе ибо часто в ней есть массивы на тысячи и тысячи элементов, и если ошибиться в лейауте можно потерять десятки процентов занимаемой оперативки
Если человек задумывается о таких вещах, то он вполне в состоянии сам поля распределить, как ему нужно
да смысл спорить, во всех нормальных языках уже давно поля оптимизируются и все только рады этому. Это чисто фейл
Так лет-то сколько языку
А если компилятор раскидает вместе используемые поля далеко друг от друга ради уменьшения размера структуры то вместо 1 кэш-мисса при работе с большим массивом из таких структур будет 2 на каждой из них. Ну такая себе польза.
Обсуждают сегодня