本文介绍如何在C语言中使用Lua语言.
1 使用luaL_dostring函数
在C语言中可以容易执行lua脚本,可以将lua脚本直接嵌入到C语言程序中,再使用luaL_dostring进行调用。具体示例如下
c
//02使用luaL_dostring函数
#include <stdio.h>
#include <stdlib.h>
// Lua数据类型与函数接口
#include "lua.h"
// Lua与C交互辅助函数接口
#include "lauxlib.h"
// Lua标准库打开接口
#include "lualib.h"
int main()
{
// 创建一个新的lua状态
lua_State* L = luaL_newstate();
// 打开标准库
luaL_openlibs(L);
// 解析并执行一行Lua脚本字符串,字符串
luaL_dostring(L, "print('你好')");
//执行多次运算
luaL_dostring(L, "a=3");
luaL_dostring(L, "print(a)");
//可以一次性执行多行lua脚本
luaL_dostring(L, "
--输出1-10
for i=1,10 do
print(i)
end
");
// 关闭Lua状态
lua_close(L);
return 0;
}
运行结果如下
2 使用luaL_dofile函数调用外部lua脚本
luaL_dofile的用法和luaL_dostring用法类似,不同的是luaL_dofile调用的是外部lua脚本,使用也非常简单,具体如下
c
//03使用luaL_dofile调用外部lua程序文件
#include <stdio.h>
#include <stdlib.h>
// Lua数据类型与函数接口
#include "lua.h"
// Lua与C交互辅助函数接口
#include "lauxlib.h"
// Lua标准库打开接口
#include "lualib.h"
int main()
{
// 创建Lua状态
lua_State* L = luaL_newstate();
// 打开标准库
luaL_openlibs(L);
// 加载并运行当前目录下列的a.lua脚本并
luaL_dofile(L,"a.lua");
// 关闭Lua线程
lua_close(L);
return 0;
}
外部lua文件如下:
lua
--这是一个lua程序
function test(x)
return x^2
end
print("你好,世界")
a=3
print(a)
for i=1,10 do
print(i)
end
print(test(3))
运行结果如下