对于intN_t类型,有新的格式说明符,例如%"PRIiN"%"SCNiN"函数系列,例如printfscanf

什么是float_tdouble_t的新格式说明符? (在math.h中定义)

我可以安全使用%f%lf吗?我不这么认为,因为float_t至少与float一样大,但可以定义为long double

由于没有人回答,而且我在任何地方都找不到答案,这可能是C语言中的错误吗?

最佳答案

为谨慎起见,您可以在%Lf控制字符串中使用printf,并将类型float_tdouble_t的值强制转换为long double

编辑:
长整型的格式说明符是%Lf而不是%lf
您必须对scanf更加谨慎,因为在这种情况下,强制转换将无济于事。

或者,您可以使用printf [1]宏来为scanffloat_t定义自己的double_tFLT_EVAL_METHOD格式说明符,以找出float_tdouble_t分别等效于哪些内置类型。

10-06 02:14