你究竟是什么意思long long double?你的编译器真的接受这种语法吗?旧版本中似乎存在一个错误gcc,用于解析此问题long long double并将其识别为long long int.很久以前修复了这个bug:https://gcc.gnu.org/bugzilla/show_bug.cgi?id = 6634
如您所知,C标准支持长整数类型:
long long int可以打印格式%lld或%lli,unsigned long long int格式%llu,%llo或%llx,和一个长浮点类型:
long double印有%Lf,%Lg或%Le.某些特定目标的实现可能存在其他类型,但不是标准的:
__float128或者binary128,也称为四倍精度,记录在这里:https://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format
__float256或者binary256,也称为八倍精度,记录在这里:https://en.wikipedia.org/wiki/Octuple-precision_floating-point_format
这些都没有long long double在通用编译器上实现......
至少可以说,这些格式不受广泛支持,也没有printf定义标准转换.查看编译器文档以获取可能的扩展或特定函数,以转换这些扩展精度浮点格式(如果它们在目标上完全可用).