Я знаю, что размер различных типов данных может меняться в зависимости от того, в какой системе я включен. Я использую XP 32bits и используя оператор sizeof() в С++, кажется, что long double равен 12 байтам, а double - 8.
Однако большинство основных источников заявляют, что long double равен 8 байтам, поэтому диапазон является таким же, как и double.
Откуда у меня 12 байт? Если long double действительно составляет 12 байтов, разве это не расширяет диапазон значений? Или длинная подпись используется только (цифры компилятора), когда значение превышает диапазон двойника и, следовательно, выходит за пределы 8 байтов?
Спасибо.