在编译时在浮点数和双精度之间切换
Switching between float and double precision at compile time
如果我想在编译时在浮点数和双精度之间切换,我应该在哪里查看。就像,如果用户希望所有内容都以浮点而不是双精度表示,我如何保持这种灵活性?换句话说,我应该如何定义一个有条件地可以是浮点数或双精度的变量?
如果在编译时进行切换是可以的,一个简单的typedef
就可以了:
#ifdef USE_DOUBLES
typedef double user_data_t;
#else
typedef float user_data_t;
#endif
在代码中使用user_data_t
,如果要在编译时doubles
,请设置USE_DOUBLES
:
g++ -DUSE_DOUBLES=1 myprogram.cpp
如果不确切知道您打算如何使用数据,就很难推荐正确的解决方案。
查看联合日期类型。
http://msdn.microsoft.com/en-us/library/5dxy4b7b(v=VS.80).aspx
根据使用情况,模板也是一个可行的选择。
http://msdn.microsoft.com/en-us/library/y097fkab.aspx
我不希望在我的代码中使用#define
s。
我将有两个不同的标头和两个不同的typedef
,并允许构建选项选择包含哪个标头。
相关文章:
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 为什么 2 个双精度值之间的差值计算错误?
- "+=" 操作在类型之间不起作用 std::复杂<double>和__complex__双精度
- 函数重载和双精度和长之间的混淆
- 浮点数和双精度之间的区别
- NaN 在浮点型和双精度型之间的类型转换
- 2 个给定数字之间的双精度密度
- 在C++中,添加双精度值会在不同的程序之间产生不同的结果
- Xcode 错误:指针和双精度之间的比较
- 如何以最大精度(C++)将uint64_t转换为0到1之间的双精度/浮点数?
- C++11 类型推理如何在浮点数或双精度数之间做出决定
- x86和x86_64中浮点和双精度之间的性能差异
- 如何在 c++ 中生成介于 0 和变量之间的随机双精度
- C++ 中双精度和长双精度之间的区别
- 如何使用逐位运算执行双精度之间的求和
- 在浮点和双精度之间进行选择
- 大整数和双精度之间的乘法
- 在一系列值之间生成随机双精度
- 在映射或unordered_map之间选择由计算的双精度值组成的键
- 在编译时在浮点数和双精度之间切换