在将Lua数字转换为off_t
值时,我应该使用lua_tointeger()
还是lua_tonumber()
?我可以使用lua_tointeger()作为off_t吗?
我检查了Lua本身的源代码,发现它们的file:seek函数使用lua_Number
而不是lua_Integer
。
我还看到,软件包广泛使用lua_tonumber()
(或luaL_checknumber()等),甚至读取文件描述符(!)。
那么size_t
呢?
对于所有积分C类型(mode_t,size_t等),我应该转到“极端”并使用lua_tonumber()
(和lua_pushnumber()
)吗?或者我应该通常只使用lua_tointeger()
,并且只有当我“感觉”这是一个潜在的大数字时,才会使用lua_tonumber()
?
请始终链接到正确的来源。您链接到Wesnoth代码的战斗,而不是[原始Lua文件:seek'实现](http://www.lua.org/source/5.2/liolib.c.html#f_seek)。他们碰巧是一样的,但你将来永远都不会知道。 –