首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在编译时在浮点型和双精度之间切换

问在编译时在浮点型和双精度之间切换
EN

Stack Overflow用户
提问于 2013-01-25 06:22:28
回答 3查看 3.2K关注 0票数 3

如果我想在编译时在浮点数和双精度之间切换,我应该看看哪里。这就像,如果用户想要所有的东西都是浮点型的而不是双精度的,我怎么能保持这种灵活性呢?换句话说,我应该如何定义一个变量,它可以是浮点型的,也可以是双精度的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-25 06:25:52

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

代码语言:javascript
复制
#ifdef USE_DOUBLES
typedef double user_data_t;
#else
typedef float user_data_t;
#endif

在代码中使用user_data_t,如果希望在编译时使用doubles,请设置USE_DOUBLES:

代码语言:javascript
复制
g++ -DUSE_DOUBLES=1 myprogram.cpp
票数 17
EN

Stack Overflow用户

发布于 2013-01-25 06:25:05

如果不确切知道您打算如何使用数据,就很难推荐正确的解决方案。

看一下联合日期类型。

http://msdn.microsoft.com/en-us/library/5dxy4b7b(v=VS.80).aspx

根据使用情况,模板也是一个可行的选择。

http://msdn.microsoft.com/en-us/library/y097fkab.aspx

票数 1
EN

Stack Overflow用户

发布于 2013-01-25 06:59:05

我不喜欢在我的代码中使用#define。

我会有两个不同的头和两个不同的typedef,并允许构建选项来选择包含哪个头。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14511910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档