专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 其他开发语言

lua源码中l_mathop的功用

发布时间:2011-06-30 07:19:56 文章来源:www.iduyao.cn 采编人员:星星草
lua源码中l_mathop的作用

/*
@@ l_mathop allows the addition of an 'l' or 'f' to all math operations
*/
#define l_mathop(x) (x)

static int math_abs (lua_State *L) {
  lua_pushnumber(L, l_mathop(fabs)(luaL_checknumber(L, 1)));
  return 1;
}


如上代码,不明白为何要调用一层l_mathop,直接fabs不就可以了吗?
------解决方案--------------------
注释里说的很清楚了。如果仔细读过Programming in Lua,就会注意到Lua的Number类型是可以定制的(默认是double类型,需要使用fabs函数),如果你修改了Number的类型,那么调用math库时,你就应该调用相应的fabsl(long double)或fabsf ( fload ) 函数,也就是
#define l_mathop(x)        (x ## l) // for long double 

#define l_mathop(x)        (x ## f) // for float
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: