Luaで良く作る関数 ~bit32編~

Lua 5.1でbit32

  • Luaスクリプトで制作されたbit32モジュールを利用することで、Lua5.2のbit32ライブラリと同様の関数をLua5.1でも利用することが出来ます。
  • test.lua
    local bit32 = require 'bit32'
    
    print(bit32.lshift(4,2)) -->16
    

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
    

トップ   差分 履歴 リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-04-14 (日) 00:00:00