Spec-Zone.ru › GCC 15

6.1.6 Десятичные типы с плавающей точкой

В качестве расширения GNU C поддерживает десятичные типы с плавающей точкой, определённые в проекте N1312 документа ISO/IEC WDTR24732. Поддержка десятичных типов с плавающей точкой в GCC будет развиваться по мере изменения проекта технического отчёта. Соглашения о вызовах для любой целевой платформы также могут измениться. Не все целевые платформы поддерживают десятичные типы с плавающей точкой.

Десятичные типы с плавающей точкой: _Decimal32, _Decimal64 и _Decimal128. Они используют основание системы счисления 10, в отличие от типов с плавающей точкой float, double и long double, основание которых не указано стандартом C, но обычно равно 2.

Поддержка десятичных типов с плавающей точкой включает арифметические операторы сложения, вычитания, умножения и деления; унарные арифметические операторы; операторы отношения; операторы равенства; а также преобразования в целочисленные и другие типы с плавающей точкой и обратно. Используйте суффикс ‘df’ или ‘DF’ для литеральной константы типа _Decimal32, ‘dd’ или ‘DD’ для _Decimal64 и ‘dl’ или ‘DL’ для _Decimal128.

Поддержка десятичных чисел с плавающей точкой в GCC, предусмотренная проектом технического отчёта, реализована не полностью:

  • Если значение десятичного типа с плавающей точкой нельзя представить в целочисленном типе, в который оно преобразуется, результат не определён, а не равен значению результата, указанному в проекте технического отчёта.
  • GCC не предоставляет функциональность библиотеки C, связанную с math.h, fenv.h, stdio.h, stdlib.h и wchar.h; её должна предоставлять отдельная реализация библиотеки C. Поэтому компилятор GNU C не определяет макрос __STDC_DEC_FP__, указывающий на соответствие реализации техническому отчёту.

Типы _Decimal32, _Decimal64 и _Decimal128 поддерживаются форматом отладочной информации DWARF.

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/Decimal-Float.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API