在lua源代码中,为什么他们使用双精度而不是更通用的lua_Number?

在lua源代码中,文件lobject.h中的'TValuefields'定义中,为什么'd__'是一个双精度类型而不是更通用的'lua_Number'?

代码如下所示

#define TValuefields  \
union { struct { int tt__; Value v__; } i; double d__; } u

它不应该是这样的吗?

#define TValuefields  \
union { struct { int tt__; Value v__; } i; lua_Number d__; } u
点赞
用户107090
用户107090

TValuefields 的定义仅在 LUA_NANTRICK 打开时才有效。 如 luaconf.h 中所述,NaN trick 仅适用于 doubles。

2013-12-07 13:22:39