Isa*_*nte 0 c floating-point printf types format-specifiers
作为一个新的C编程学习者,我试图理解我应该在printf中使用哪个说明符来显示long double类型的最大值和最小值.根据以下StackOverflow答案,我可以使用%Lg:https://stackoverflow.com/a/18797417/1536240
但这似乎没有成功.我已经尝试了%e,%f,%Lf,%g和%Lg,但它不起作用.这是我的代码的相关部分我遇到了问题(我正在做的其他工作正常):
printf("**long double**\nStorage size: %d bytes \t Minimum value: %Lg
\t Maximum value: %Lg\n", sizeof(long double), LDBL_MIN, LDBL_MAX);
Run Code Online (Sandbox Code Playgroud)
我在顶部包含了这些头文件:
#include <stdio.h>
#include <limits.h>
#include <float.h>
Run Code Online (Sandbox Code Playgroud)
我有点迷失在这里.
编辑:很抱歉没有解释输出是什么.我现在正在使用%Lg,而且我在终端中得到了这个.
虽然您应该在问题中提供获得的结果,但您的错误可能是%d用于打印sizeof应该打印的结果%zu.
这会导致未定义的行为.对于某些平台,printf堆栈上的其余参数将被误解释,因为宽度int与宽度不匹配size_t.