首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

宏定义中元素类型的有关问题

2012-02-29 
宏定义中元素类型的问题有如下宏:#defineMULTI_FUNCTIONAL(exp,test,result){\constdoubleexpVal(exp)\c

宏定义中元素类型的问题
有如下宏:
#define   MULTI_FUNCTIONAL(exp,   test,   result)   {         \
const   double   expVal=(exp);                                               \
const   double   testVal=(test);                                           \
const   double   resultVal=(result);                                   \

if   (resultVal==testVal)   ...   ...   (省略)

结果发现exp,   test,   result的值不仅仅可以是double类型的,也可以是char,   int各种类型的值。怎么定义这里的expVal,   testVal和resultVal呢?

请指教一下,谢谢!

[解决办法]
如果是gcc,可以使用typeof(exp) const expVal = (exp);
如果不是gcc,可以使用宏转调inline的template函数自动推导类型。
不要在“宏”上吊死。

热点排行