【发布时间】:2014-08-31 04:42:46
【问题描述】:
在 C99 中,术语 算术运算 出现了 16 次,但我没有看到它的定义。
算术运算符这个词在文本中只出现了两次(同样没有定义),但它确实出现在索引中:
算术运算符
添加剂,6.5.6,G.5.2
按位,6.5.10、6.5.11、6.5.12
递增和递减, 6.5.2.4, 6.5.3.1
乘法 6.5.5, G.5.1
班次,6.5.7
一元,6.5.3.3
然后我们有- | 987654324 &(二进制)-- 987654326 @ *(二进制)% 987654330 >> 987654331 @ ~ AS算术运算符,如果索引被认为是规范的!
也许我们应该将算术运算识别为算术运算符的使用。但 F9.4.5 表示 sqrt() 函数也是算术运算,详情请参阅 IEC 60559(又名 IEEE754)。所以一定要有算术运算,而不仅仅是使用算术运算符。
【问题讨论】:
-
大概
<math.h>中的所有内容也是“算术”? -
准确的说是
sqrt is fully specified as a basic arithmetic operation in IEC 60559. -
@chux 那么,你会排除按位运算符吗?
-
@Matt 是的,按位运算符比算术更好地描述为逻辑运算符。当然,这是在意见范围内。
-
@ChronoKitsune 有些东西是根据算术运算指定的。 6.2.6.2#1 脚注“没有对有效值的算术运算可以生成陷阱表示”促使我提出这个问题;但是至少 7.14#3、F.8.1 和 H.3 也指定了仅适用于算术运算的行为。
标签: c c99 language-lawyer