糖果实验室杂货铺

Candy Lab

C调用LUA

3 weeks ago 0

通过一个简单的例子,看C是如何调用LUA的,这样将原有C处理数据的逻辑用LUA来做,省去了编译C的过程。

代码,如下:

None
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <string.h>
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
lua_State* L = NULL;


int main()
{
    L = lua_open();
    luaL_openlibs(L);
    if (luaL_loadfile(L, "test.lua") || lua_pcall(L, 0,0,0))
        error(L, "cannot run configuration file:%s", lua_tostring(L, -1));


     double x = 1.0;
     double y = 5.0;

     double z;

    

     lua_getglobal(L, "f");
     lua_pushnumber(L, x); 
     lua_pushnumber(L, y); 
    
     lua_pcall(L, 2,1,0);


//    printf("%f\n", f(1.0, 2.0));
    
    return 0;
}

编译参数:

1
gcc   a6.c -I/usr/include/lua5.1 -ldl -lm -llua5.1

糖果实验室

Openresty中文编程网
IKBC经典机械键盘
机械键盘领券优惠购买

Write a Comment