2016-04-06 3 views
5

Цитируется N1570:Что означает «тип домена» и «реальный тип»?

6.3.1.8 Обычные арифметические преобразования

1 Многие операторы, которые ожидают операндов арифметического типа причины преобразований и типов результатов выход аналогичным образом. Цель состоит в том, чтобы определить общий действительный тип для операндов и результата. Для указанных операндов каждый операнд преобразуется без изменения домен домена, к типу, соответствующий реальному типу является обычным реальным типом. Если явно не указано иное, общий реальный тип также соответствующий реальный тип результата, которого тип домена является областью типа операндов, если они одинаковы, и комплекс иначе. Эта модель называется обычные арифметические преобразования:

  • Во-первых, если соответствующий реальный тип любого операнда имеет длину двойной, а другой операнд преобразуется, без изменения типа домена , к типу, чьи соответствующие реальный тип - длинный двойной.
  • Иначе ......

Что такое "домен типа" и "реальный тип"? Я ищу документ, но определение не найдено.

+0

Домен типа integer, float, structure или union? –

+0

RTFineM: 6.2.5p18. Простой текстовый поиск ... – Olaf

+0

@Olaf '18 Целочисленные и плавающие типы совместно называются арифметическими типами. Каждый арифметический тип относится к домену одного типа: домен реального типа содержит реальные типы, домен сложного типа содержит сложные типы. ', Но это не определяет« тип домена »явно. –

ответ

2

6.2.5 Типы N1570 говорит следующее:

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

Тогда дальше:

Есть три реального плавающие типы , обозначенный как float , double и long double. 42) Множество значений типа float является подмножеством множества значений типа двойной ; множество значений типа двойной является подмножеством множества значений типа длинных двойного

и

Есть три сложные типов, обозначенные как float _Complex , double _Complex, и long double _Complex.

(обратите внимание, что стандарт ничего не говорит о комплексных целочисленных типах, поэтому все целочисленные типы, определенные в стандарте, относятся к домену реального типа).

Таким образом, понятно, что домен относится к математическим понятиям real numbers ℝ и complex numbers ℂ.


В основном то, что выдержка в вашем вопросе говорит, что если вы, например, добавить действительное число с мнимым числом или комплексным числом, то результат будет также комплексное число; а также то, что операнды продвигаются до ширины самого большого операнда до операции.

Смежные вопросы