如果我想在编译时在浮点和双精度之间切换,我应该在哪里查看。就像,如果用户想要浮点数而不是双精度,我如何保持这种灵活性?换句话说,我应该如何定义一个可以有条件地为浮点或双精度的变量?
问问题
3247 次
3 回答
17
如果可以在编译时进行切换,那么简单的typedef
做法是:
#ifdef USE_DOUBLES
typedef double user_data_t;
#else
typedef float user_data_t;
#endif
user_data_t
在您的代码中使用,并在编译时设置USE_DOUBLES
是否需要:doubles
g++ -DUSE_DOUBLES=1 myprogram.cpp
于 2013-01-24T22:25:51.597 回答
1
在不确切知道您打算如何使用数据的情况下,很难推荐正确的解决方案。
看看联合日期类型。
http://msdn.microsoft.com/en-us/library/5dxy4b7b(v=VS.80).aspx
根据使用情况,模板也是一个可行的选择。
于 2013-01-24T22:25:04.920 回答
1
我不想#define
在我的代码中包含 s。
我将有两个不同的标头和两个不同typedef
的 s,并允许构建选项选择包含哪个标头。
于 2013-01-24T22:59:05.353 回答