【发布时间】:2016-07-27 00:18:36
【问题描述】:
引自 N1570:
6.3.1.8 常用算术转换
1 许多期望算术类型的操作数的运算符导致 转换和产生结果类型以类似的方式。目的是为了 为操作数和结果确定一个通用的真实类型。为了 指定的操作数,每个操作数都被转换,不改变 type domain,对应的real type是常见的real type。除非另有明确说明,常见的 real type也是结果对应的real type,其type domain是操作数的type domain如果他们 是相同的,否则复杂。这种模式被称为通常 算术转换:
- 首先,如果任一操作数对应的实数类型为long double,则转换另一操作数,不改变类型 域,转换为对应的真实类型为long double的类型。
- 否则,......
什么是“类型域”和“真实类型”?我搜索了文档,但没有找到定义。
【问题讨论】:
-
类型域是整数、浮点数、结构还是联合?
-
RTFineM:6.2.5p18。一个简单的文本搜索……
-
@Olaf
18 Integer and floating types are collectively called arithmetic types. Each arithmetic type belongs to one type domain: the real type domain comprises the real types, the complex type domain comprises the complex types.,但这并没有明确定义“类型域”。 -
另外,here 是一个关于 C11 类型的漂亮图表。
-
“真实”一词是在数学意义上使用的。在算术类型中,“实数”类型是“复数”类型的替代品。然而,这样说并不意味着复杂类型在任何方面都比实际类型更标准或更传统。它们同样由语言标准定义,并且真正的类型远,远更多地使用。
标签: c types language-lawyer c11