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