gpt4 book ai didi

c++ - Sinf - 它存在于 C++ 中吗?

转载 作者:太空宇宙 更新时间:2023-11-04 16:29:02 25 4
gpt4 key购买 nike

我很想知道 sinf 函数是否存在于 C++ 中,通过包含 math.h

在 Qt Creator 中查看我的自动完成时,它似乎没有弹出。这让我想知道是否出于某种原因,它被取出了。谷歌搜索似乎也没有出现很多引用资料;他们中的大多数都引用了直 C。

那么,这可以确认吗?

最佳答案

这取决于您的实现支持哪个版本的标准。

1990 ISO C 标准中不存在 sinf 函数(sind 也不存在)。唯一的 sin 函数是 sin,它接受一个 double 参数并返回一个 double 结果。 (“ future 库方向”部分,7.13,确实表示保留名称后缀为 fl 的数学函数。)

1999 ISO C 标准 (C99) 添加了 sinfsind 函数。

ISO C++ 标准的 2003 版在第 17.4.1.2 节 [lib.headers] 中说:

Except as noted in clauses 18 through 27, the contents of each header cname shall be the same as that of the corresponding header name.h, as specified in ISO/IEC 9899:1990 Programming Languages C (Clause 7), or ISO/IEC:1990 Programming Languages—C AMENDMENT 1: C Integrity, (Clause 7), as appropriate, as if by inclusion.

2011 ISO C++ 标准(至少是 N3290 草案)包括以下规范引用:

  • ISO/IEC 9899:1999,编程语言 — C
  • ISO/IEC 9899:1999/Cor.1:2001(E),编程语言 - C,技术勘误表 1
  • ISO/IEC 9899:1999/Cor.2:2004(E),编程语言 - C,技术勘误表 2
  • ISO/IEC 9899:1999/Cor.3:2007(E),编程语言 - C,技术勘误 3

因此,符合 C++11 之前标准的 C++ 实现不需要提供 sinf。尚不清楚是否允许这样做,但由于 C++11 之前的所有标准都正式过时,这可能是一个没有实际意义的问题。

对于 C++11 之前的实现来说,提供 sinf() 和 friend 作为(可能不符合规范的)扩展可能很常见。

实际上,您总是可以调用sin();在大多数情况下,参数和结果将从 float 隐式转换为 double 以及从 double 隐式转换为 float。可能(也可能不会)有一些效率损失。

关于c++ - Sinf - 它存在于 C++ 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9090737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com