Cómo convertir char* a tipo cadena en lua
static int l_sin ( lua_State *L) {
double d = lua_tonumber(L, 1); /* Obtener parámetros*/
lua_pushnumber(L, sin(d)); /
return 1; /*Número de resultados*/
}
Cualquier función registrada en Lua debe tener el mismo prototipo. La declaración del prototipo se define como lua_CFunction en lua.h:
typedef int (*lua_CFunction) (lua_State *L);
Desde la perspectiva del lenguaje C, las funciones del lenguaje C aceptan Toma uno parámetro, el estado Lua, y devuelve un número que indica el número de valores devueltos. Por lo tanto, la función no necesita borrar la pila antes de colocar el valor de retorno en la pila; después de que la función regresa, Lua borra automáticamente todo lo que hay en la pila debajo del resultado devuelto.
Para utilizar esta función en Lua, también debemos registrarla primero. Usamos lua_pushcfunction para este propósito: recibe un puntero a una función C y crea un valor de tipo función en Lua para representar la función.