Учитывая int
будет 4 байта в 32-битной системе и 8 байтов в 64-битной системе, почему float
не лечится одинаково? Почему размер double
! = размер float
в 64-битной системе? Учитывая, что лучший родной целочисленный тип выбирается, когда я объявляю int
(что приводит к более высокая производительность), не должно случиться то же самое для float
(что также приводит к увеличению производительности)?
Смежный вопрос: плохая идея объявить тип my_float
(простите за имя!) это float
на 32-битных системах и double
на 64-битных системах?
Ваш вопрос основан на ложной предпосылке. На большинстве современных 64-битных систем int
еще 4 байта. Зачем использовать вдвое больше памяти и вдвое больше пропускной способности памяти, когда такие большие целые числа так редко нужны? В типичных современных 64-разрядных системах математика для 64-разрядных целых чисел не быстрее, чем математика для 32-разрядных целых чисел, поэтому преимуществ не будет.
Других решений пока нет …