Significado#

Valores de LuaJIT para punteros, estructuras y números de C. ffi.string copia una cadena de C a una cadena de Lua; ffi.cast cambia la vista del tipo sin demostrar que la dirección sea válida. Comprueba por separado la vida útil de la memoria.

Ejemplo#

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

Qué ocurre: valor es uint64_t que contiene 42; tipo = "cdata"; bytes = 8.

Este fragmento no imprime ni escribe un mensaje de registro. Los valores mostrados son los resultados esperados del ejemplo.

Métodos y llamadas relacionadas#

Función Devuelve Finalidad
ffi.cast cdata Crea cdata scalar por un molde tipo C. El casting no valida una dirección de memoria.
ffi.cdef none Declara los tipos y firmas C para FFI; no carga una biblioteca ni implementa una función.
ffi.copy none Copia bytes en un buffer asignado. Omitir longitud requiere una cadena Lua y también copia su cero-cestor.
ffi.new cdata Alocates e inicializa cdata. Se requiere un argumento de tamaño para arrays o structs de longitud variable.
ffi.sizeof number | nil Devuelve el tamaño del byte de un tipo C o cdata; un tamaño desconocido puede producir nil.
ffi.string string Copia datos de un puntero C en una cadena Lua; sin una longitud se lee al ceroTector.