lua 与c语言传递参数,C语言调用Lua脚本并传入结构体

直接看代码,代码中有相关注释。

c-lua-struct.c

#include

#include

#include

#include

#include

#include

/* 结构体定义 */

typedef struct

{

int x;

int y;

char *str;

}TData;

int call_lua_fun(lua_State *L, int a, int b)

{

/* 初始化结构体 */

TData data;

data.x = a;

data.y = b;

data.str = malloc(10);

memset(data.str, 'c', 9);

data.str[9] = '\0';

/* 获取Lua脚本中函数名为“fun”的函数并压入栈中 */

lua_getglobal(L, "fun");

/* 创建一个新的table并压入栈中 */

lua_newtable(L);

/* 第一个操作数入栈,int类型可以用lua_pushinteger或lua_pushnumber */

lua_pushinteger(L, data.x);

/*

* 将值设置到table中,Lua脚本中可以用“.a”获取结构体x成员的值

* 第三个参数的值可以随便取,只要和Lua脚本中保持一致即可

*/

lua

你可能感兴趣的:(lua,与c语言传递参数)