zeb*_*und 1 c++ trigonometry math.h
sinf
我很好奇通过包含 .c++来知道该函数是否存在于 C++ 中math.h
。
当在 Qt Creator 中查看我的自动完成功能时,它似乎没有弹出。这让我想知道是否出于某种原因它被删除了。谷歌搜索似乎也没有弹出很多参考文献;其中大部分是针对直 C 的。
那么,这一点能否得到证实呢?
这取决于您的实现支持哪个版本的标准。
\n\n该sinf
函数在 1990 年 ISO C 标准中不存在(也不存在sind
)。唯一的sin
函数是sin
,它接受一个double
参数并返回一个double
结果。(“未来的图书馆方向”部分,7.13,确实说名称后缀为f
或 的数学函数l
被保留。)
1999 年 ISO C 标准 (C99) 中添加了sinf
和函数。sind
2003 年版的 ISO C++ 标准在第 17.4.1.2 节 [lib.headers] 中表示:
\n\n\n\n\n除第 18 至 27 条中另有规定外,每个标头 cname的内容应与相应标头name.h的内容相同,如 ISO/IEC 9899:1990 编程语言 C(第 7 条)中指定的那样,或\n ISO/IEC:1990 编程语言\xe2\x80\x94C 修正案 1:C 完整性,(第 7 条),视情况而定,如同通过包含一样。
\n
2011 年 ISO C++ 标准(至少是 N3290 草案)包含以下规范性参考内容:
\n\n因此,符合 C++11 之前标准的 C++ 实现不需要提供sinf
。目前尚不清楚是否允许这样做,但由于 C++11 之前的所有标准均已正式过时,因此这可能是一个没有实际意义的问题。
sinf()
对于 C++11 之前的实现来说,提供和朋友作为(可能不合格)扩展可能很常见。
实际上,您随时可以拨打电话sin()
;在大多数情况下,参数和结果将隐式地从float
todouble
和double
to转换float
。可能(也可能不会)存在一些效率损失。
归档时间: |
|
查看次数: |
2552 次 |
最近记录: |