小编Jan*_*e S的帖子

#define中的整数是什么数据类型?

如果我用一个整数#define,什么data type是它认为是sprintf()C99

#define NUMBER 100

sprintf(buf, "%i\n", NUMBER); // is it %i, %u, %lu ?
Run Code Online (Sandbox Code Playgroud)

c

5
推荐指数
1
解决办法
1461
查看次数

为什么fetestexcept()有时会在浮动倍增时抱怨?

我在C99中使用fetestexcept(),它有时会抱怨乘法浮点数给出一个不精确的结果(FE_INEXACT).当浮点变量乘以浮点文字时似乎会发生这种情况.我怎么能修改这个,所以fetestexcept()不会抱怨?

gcc -std = c99 -lm test.c

#include <stdio.h>
#include <math.h>
#include <fenv.h>

#pragma STDC FENV_ACCESS ON

int main(void)
{
    float a = 1.1f;
    float b = 1.2f;
    float c = a * b * 1.3f;

    int exception = fetestexcept(FE_ALL_EXCEPT);
    if(exception != 0)
    {
        printf("Exception: 0x%x\n", exception); // 0x20 FE_INEXACT
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c linux posix

3
推荐指数
1
解决办法
379
查看次数

标签 统计

c ×2

linux ×1

posix ×1