在编译时在float和double精度之间切换

Shi*_*bli 3 c++ double-precision floating-point-precision

如果我想在编译时在float和double精度之间切换,我应该在哪里看看.就像,如果用户想要浮动而不是双精度,我怎么能保持这种灵活性呢?换句话说,我应该如何有条件地定义一个可以是float或double精度的变量?

das*_*ght 16

如果可以在编译时进行切换,那么简单typedef就可以:

#ifdef USE_DOUBLES
typedef double user_data_t;
#else
typedef float user_data_t;
#endif
Run Code Online (Sandbox Code Playgroud)

使用user_data_t在你的代码,并设置USE_DOUBLES如果你想doubles在编译时:

g++ -DUSE_DOUBLES=1 myprogram.cpp
Run Code Online (Sandbox Code Playgroud)