标题:函数怎么使用的!
只看楼主
debug之读
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2018-4-12
结帖率:0
已结贴  问题点数:20 回复次数:3 
函数怎么使用的!
usigned int clear87()
怎么使用的呢!!!
求回答
!!
感谢各位 大佬  debug



搜索更多相关主题的帖子: 函数 int debug 
2018-04-12 15:50
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:10 
usigned int a = clear87()
2018-04-12 15:56
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:10 
非标准函数,msdn有例子
程序代码:
#include <stdio.h>
#include <float.h>

int main( void )
{
   double a = 1e-40, b;
   float x, y;

   printf( "Status: %.4x - clear\n", _clear87()  );

   // Store into y is inexact and underflows:
   y = a;
   printf( "Status: %.4x - inexact, underflow\n", _clear87() );

   // y is denormal:

   b = y;
   printf( "Status: %.4x - denormal\n", _clear87() );
}

标准C函数得看 http://en.

2018-04-12 16:10
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
微软那非标准的_clear87示例输出是
Status: 0000 - clear
Status: 0003 - inexact, underflow
Status: 80000 - denormal

用标准C函数写一个
程序代码:
#include <stdio.h>
#include <fenv.h>

void fe_get_and_clear( void )
{
    int flag = fetestexcept(FE_ALL_EXCEPT);
    printf( "Status: %08X", flag );

    if( flag&FE_INVALID )
        printf( "%s", " invalid" );

    if( flag&FE_DENORMAL )
        printf( "%s", " denormal" );

    if( flag&FE_DIVBYZERO )
        printf( "%s", " divbyzero" );

    if( flag&FE_OVERFLOW )
        printf( "%s", " overflow" );

    if( flag&FE_UNDERFLOW )
        printf( "%s", " underflow" );

    if( flag&FE_INEXACT )
        printf( "%s", " inexact" );

    putchar( '\n' );
    feclearexcept(FE_ALL_EXCEPT);
}

int main( void )
{
    double a = 1e-40;
    fe_get_and_clear();

    float y = a;
    fe_get_and_clear();

    double b = y;
    fe_get_and_clear();

    printf( "%f %f %f\n", a, y, b );
}
输出是
Status: 00000000
Status: 00000030 underflow inexact
Status: 00000002 denormal

2018-04-12 16:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486010-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.088698 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved