Anuncios

Bienvenidos sean a este post, continuando con lo visto en los posts anteriores uno de los significados basicos para extender Lua es para la aplicacion registrar nuevas funciones de C dentro de Lua.

Anuncios
Anuncios

Cuando decimos que Lua puede llamar funciones de C esto no significa que Lua pueda llamar a cualquier funcion de C, como vimos anteriormente cuando C llama a funciones de Lua debe seguir un simple protocolo para pasar los argumentos y obtener los resultados, de forma similar para una que una funcion de C sea llamada de Lua debe seguir un protocolo para conseguir sus argumentos y devolver sus resultados, ademas para que una funcion de C puede ser llamada desde Lua debemos registrarlo es decir que debemos dar su direccion a Lua en una manera apropiada.

Anuncios
Anuncios

Cuando Lua llama a una funcion de C usa el mismo tipo de pila que C usa para llamar a Lua, la funcion de C consigue sus argumentos desde la pila y empuja los resultados en la pila y para distinguir los resultados de otros valores en la pila la funcion devuelve (en C) el numero de de resultados que esta dejando en la pila, un concepto importante aqui es que la pila no es una estructura global porque cada funcion tiene su propia pila privada, cuando Lua llama a una funcion de C el primer argumento sera siempre el indice 1 de su pila local incluso cuando una funcion de C llama a codigo Lua a la misma (u otra) funcion de C de nuevo, cada una de estas invocaciones ve solo su propia pila privada con su primer argumento con indice 1.

Anuncios

En resumen, esto es un pequeño resumen de lo que veremos en los siguientes posts, una breve introduccion de como se llama una funcion de C desde Lua, como trabajan en la pila, unas particularidades en las cuales ahondaremos mas adelante, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00