正在将64位项目移植到32位项目以使范围兼容更改:
typedef float float_t;
到
typedef long double float_t;
一切都很完美,但%f的所有printf说明符都出现错误。我不想在整个代码中更改为%Le。
请建议任何通用解决方案,以便它可以使用c语言的32位和64位系统。
答案 0 :(得分:3)
您将不得不使用#define作为float / long double的格式字符串,或者使用特殊的格式化函数
答案 1 :(得分:0)
您没有分析您正在使用的语言。在C ++中std::cout
优先于printf
,它会为您提供类型正确的格式。
如果您使用的是C,则可以根据平台为浮点变量的类型和printf
的格式字符串定义宏