gpt4 book ai didi

c - C 中 LDBL_MIN 返回 0,LDBL_MAX 返回#QNAN

转载 作者:行者123 更新时间:2023-11-30 14:46:07 29 4
gpt4 key购买 nike

我正在用 C 编写一个简单的程序,它打印出值、内存中分配的字节数、每种数据类型的最大值和最小值。实际上,我只是在长双部分方面遇到问题。简单地说,它不会打印出我分配给 long double 变量的值,函数 sizeof 似乎只有在 printf 函数中单独使用时才能正常工作,LDBL_MIN 值似乎为 0 但我不明白是什么我需要使用的类型说明符,LDBL_MAX 值打印出 1.#QNAN。

这是我的代码:

charactersPrinted=printf("\t\t\t--- Long double ---\nValore: %1.6f",x);
printf("\nBytes allocated: %d\n",sizeof(long double));
printf("Minimum value: %g\nMaximum value: %lg\n",LDBL_MIN,LDBL_MAX);
printf("(Characters printed= %d)\n\n\n",charactersPrinted);

最佳答案

sizeof 是一个运算符,而不是一个函数。

%1.6f 没有多大意义:最小字段宽度 1 是多余的,因为 %f 始终会生成至少一个输出字符。精度 6 是多余的,因为这是 %f 的默认值。整个事情可以写成%f

%f 采用 double,而不是 long double(应为 %Lf)。

%d 采用 int,而不是 size_t(应为 %zu)。

%g 采用 double,而不是 long double(应为 %Lg)。

%lg 采用 double,而不是 long double(应为 %Lg)。

参见例如Linux documentation for printf .

关于c - C 中 LDBL_MIN 返回 0,LDBL_MAX 返回#QNAN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52543660/

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