windows c语言判断是不是nan,检查C+中的双(或浮点数)是否为NaN

ea771864dc8712d5f78244cb9d63d302.png

宝慕林4294392

没有isnan()函数在当前的C+标准库中可用。它是在C99定义为宏不是函数。由C99定义的标准库元素不属于当前的C+标准ISO/IEC 14882:1998,也不是其更新的ISO/IEC 14882:2003。2005年提出了“技术报告1”。TR1与C99和C+兼容。尽管它从未被正式采用成为C+标准,但许多GCC 4.0+或Visual C+9.0+C+实现确实提供了TR1功能,所有这些特性或只有一些特性(VisualC+9.0不提供C99数学函数)。如果TR1可用,那么cmath包括C99元素,如isnan(), isfinite()等等,但它们被定义为函数,而不是宏,通常在std::tr1::命名空间,尽管许多实现(即Linux上的GCC 4+或MacOSX10.5+上的XCode)将它们直接注入到std::,所以std::isnan定义得很清楚。此外,C+的一些实现仍然使C99isnan()可用于C+的宏(包括cmath或math.h),什么会引起更多的混乱,开发人员可能会认为这是一种标准行为。如上文所述,关于VIZE C+的说明没有提供std::isnan两样std::tr1::isnan,但是它提供了一个定义为_isnan()从那时起就有了Visual C+6.0在XCode上,还有更多的乐趣。如前所述,GCC 4+定义了std::isnan..对于较早版本的编译器和库表单XCode,似乎(这里是相关讨论),还没有机会检查我自己)定义了两个函数,__inline_isnand()关于英特尔和__isnand()在电源PC上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值