lua C语言api学习2 在C语言中使用lua语言

本文介绍如何在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))

运行结果如下

相关推荐
撩得Android一次心动4 小时前
Jetpack Compose 知识点整理2【个人用】
android·笔记·学习·kotlin·compose
dadaobusi5 小时前
学习:灵犀指令集
学习
xhyu616 小时前
【学习笔记】图像质量评估方法 (5.生成图像是否符合用户要求)
笔记·学习·计算机视觉
卿卿的产品经理日记8 小时前
【AI产品经理实战】Day 38|try-except 踩坑实录:报错是数据
人工智能·笔记·python·学习·产品经理
keyipatience8 小时前
TypeScript学习(1)
前端·javascript·学习·typescript·html·css3
鱼很腾apoc8 小时前
【MySQL】第4期 用户管理与 C 语言连接编程详解
linux·服务器·c语言·mysql·connector/c
lazy H9 小时前
【计算机网络】第 2 篇:一条数据如何穿过网络?彻底理解数据封装与解封装
网络·经验分享·后端·学习·计算机网络
我命由我123459 小时前
软件工程概念 - 可插拔性
java·后端·学习·java-ee·系统架构·软件工程·学习方法
kkkkkkkkkk_Z10 小时前
新手自学嵌入式 | 学习日记:I2C总线协议、时序分析、读写流程与代码实现
学习
himobrinehacken10 小时前
位运算揭秘:左右移与符号位陷阱
c语言·c++·算法·安全