gpt4 book ai didi

c++ - 将所有浮点文字设置为 float MSVC++

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:18:32 26 4
gpt4 key购买 nike

我正在用 C++ 编写一些数字代码,我希望能够在使用 double 和 float 之间切换。因此,我添加了一个#define MYFLT,我可以根据需要将其设为 float 或 double 。但是,我如何处理各种数字文字。例如

MYFLT someNumber = 1.2;
MYFLT someOtherNumber = 1.5f;

当 MYFLT 是 float 时第一行给出编译器警告,当 MYFLT 是 double 时第二行给出编译器警告。我知道这是一个微不足道的例子,但在其他情况下,我有更长的带有文字的表达式,并且 float 最终会被转换为 double ,然后结果返回到 float ,我认为这会降低我的性能。我该如何处理?

我可以做类似的事情

MYFLT someNumber = MYFLT(1.2);
MYFLT someOtherNumber = MYFLT(1.5);

但这很乏味。我假设如果我这样做,编译器足够聪明,可以在需要时使用 float (任何人都可以确认吗?)。如果有一个 MSVC++ 编译器开关或 #define 会告诉编译器将所有浮点文字视为 float 而不是 double ,那会更好。是否存在这样的开关?

即使我像上面那样包装我的所有文字,当我使用 float 而不是 double 时,我的代码运行速度也会慢 50%。我期待通过 simd 类型操作提升性能,而不是惩罚!

菲尔

最佳答案

你想要的是 #define MYFLTCONST(x) x##f#define MYFLTCONST(x) x 取决于你是否想要一个 f 附加了 float 的后缀。

关于c++ - 将所有浮点文字设置为 float MSVC++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29940273/

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