您的位置:首页 > 运维架构 > Linux

linux c程序调用lua代码的实例

2015-09-22 17:09 711 查看
C代码(add.c):
#include <stdio.h>
#include <string.h>

#include <lua5.1/lua.h>
#include <lua5.1/lualib.h>
#include <lua5.1/lauxlib.h>

/* The lua interpreter */
lua_State *L;
int luaadd(int x, int y)
{
int sum;

/* the function name */
lua_getglobal(L, "add");

/* the first argument */
lua_pushnumber(L, x);

/* the second argument */
lua_pushnumber(L, y);

/* call the function with 2 arguments, return 1 result. */
lua_call(L, 2, 1);

/* get the result */
sum = (int)lua_tonumber(L, -1);

/* cleanup the return */
lua_pop(L, 1);

return sum;
}

int main (int argc, char **argv)
{
int sum;
/* initialize lua */
L = lua_open();

/* load lua base libraries */
luaL_openlibs(L);

/* load the script */
luaL_dofile(L, "add.lua");

/* call the add function */
sum = luaadd(10, 15);

/* print the result */
printf("The sum is %d \n", sum);

/* cleanup lua */
lua_close(L);

return 0;
} /* -----End of main()----- */

lua代码(add.lua)
#!/usr/bin/lua

function add(...)
local s = 0
for i, v in ipairs{...} do
s = s + v
end
return s
end

编译:[fulinux@ubuntu ccalllua]$ gcc add.c -llua5.1

运行:
[fulinux@ubuntu ccalllua]$ ./a.out 
The sum is 25

代码所在位置:https://git.oschina.net/fulinux/lua
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: