LuaJITのFFIライブラリが,FFI(Foreign Function Interface)を通した時にインターフェース越しに引数がどのように相互変換されるかは,一応ドキュメントになっています. FFI Semantics でも良くわからないことが多いので,いろいろとサンプルを作ってみました. Part 1: Hello, World with Standard C Library Lua版は,普通に「Hello, World」を表示します. FFIを通したバージョンは,Cの標準関数のprintfを通して「Hello, World」を表示します. プログラムは,1つのLuaスクリプトにまとめました. -- Pure Lua local msg = "Hello, World" print(msg) -- FFI local ffi = require("ffi") ffi.cdef[[