अर्थ#

पॉइंटर, स्ट्रक्चर और C संख्याओं के लिए LuaJIT मान। ffi.string, C स्ट्रिंग को Lua स्ट्रिंग में कॉपी करता है; ffi.cast प्रकार का दृश्य बदलता है, लेकिन पते की वैधता साबित नहीं करता। मेमोरी का जीवनकाल अलग से जाँचें।

उदाहरण#

LUA
local ffi = require("ffi")
local value = ffi.new("uint64_t", 42)
local kind = type(value) -- cdata
local bytes = ffi.sizeof(value)

क्या होता है: मान uint64_t है जिसमें 42 है; प्रकार = "cdata"; बाइट्स = 8.

यह टुकड़ा लॉग संदेश नहीं प्रिंट करता है या नहीं लिखता है। दिखाए गए मान उदाहरण के अपेक्षित परिणाम हैं।

मेथड और संबंधित कॉल#

फ़ंक्शन लौटाता है उद्देश्य
ffi.cast cdata सी-प्रकार का कास्ट द्वारा स्कालर cdata बनाता है। कास्टिंग मेमोरी पते को मान्य नहीं करता है।
ffi.cdef none FFI के लिए C प्रकार और हस्ताक्षर घोषित करता है; यह कोई पुस्तकालय लोड नहीं करता है या कोई फ़ंक्शन लागू नहीं करता है।
ffi.copy none बफर में बाइट्स की प्रतिलिपि। उत्सर्जन लंबाई के लिए Lua स्ट्रिंग की आवश्यकता होती है और इसके शून्य समाप्तकर्ता को भी कॉपी किया जाता है।
ffi.new cdata cdata को आवंटित और आरंभ करता है। चर-लंबाई वाले सरणी या स्ट्रक्ट के लिए आकार तर्क की आवश्यकता होती है।
ffi.sizeof number | nil C प्रकार या cdata के बाइट आकार को लौटाता है; अज्ञात आकार शून्य उत्पन्न कर सकता है।
ffi.string string C पॉइंटर से डेटा को Lua स्ट्रिंग में कॉपी करता है; बिना लंबाई के यह शून्य टर्मिनेटर को पढ़ता है।