Luaで良く作る関数 ~bit32編~†
Lua 5.1でbit32†
Lua 5.1でbit32 (Lua本体のソースを変更する場合)†
- Lua本体のC言語ソースの修正が許されるならば、以下のパッチを元にソース自体の修正をするのが良いです。
- まず、Lua本体のソースに、lbitlib.c を追加
- 次に、linit.cにbit32系を追加
{LUA_STRLIBNAME, luaopen_string},
{LUA_MATHLIBNAME, luaopen_math},
{LUA_BITLIBNAME, luaopen_bit32}, // ← こんな感じでbit32を追加
{LUA_DBLIBNAME, luaopen_debug},
{NULL, NULL}
- 最後に、lualib.hにも追加
#define LUA_MATHLIBNAME "math"
LUALIB_API int (luaopen_math) (lua_State *L);
// こんな感じでbit32を追加
#define LUA_BITLIBNAME "bit32"
LUALIB_API int (luaopen_bit32) (lua_State *L);
#define LUA_DBLIBNAME "debug"
LUALIB_API int (luaopen_debug) (lua_State *L);
- test.lua
-- 本体に組み込んだ形なので、Lua5.2同様、他のファイルの読み込みなしで利用が可能
print(bit32.lshift(4,2)) -->16
|