lua_State *L = luaL_newstate();//创建一个新的栈
lua_pushstring(L, "muzixiaoxin"); //把一个字符串压入栈
lua_pushnumber(L, 875);//把一个整型压入栈
//现在栈内有两个元素,栈底是字符串"muzixiaoxin",栈顶是整型875
//"muzixiaoxin"的索引就是1,或者-2
//855的索引就是2,或者-1
if (lua_isstring(L, 1)){//判断栈底的元素是不是字符串
printf("%s\n",lua_tostring(L, 1));//如果是字符串就转换成字符串输出
}
if (lua_isnumber(L, -1)){//判断栈顶元素是不是number类型
printf("%d", lua_tonumber(L, 2));//如果是就转换成number类型输出
}
lua_close(L); //记得不需要的时候要释放掉
name = "muzixiaoxin" version = 1003
lua_State *L = luaL_newstate();
int err = luaL_loadfile(L, "test.lua"); //把lua文件加载成代码块,只加载不运行
if (err){
return;
}
err = lua_pcall(L, 0, 0, 0);//运行加载的代码块
if (err){
return;
}
lua_getglobal(L, "name"); //把全局变量name的值压入栈顶
printf("%s\n", lua_tostring(L, -1));//取出栈顶元素打印结果为:muzixiaoxin
lua_close(L); //记得不需要的时候要释放掉
//计算求和的方法
static int
sum(int a, int b){
return a + b;
}
//lua调用的方法
static int
lsum(lua_State *L){
int a = (int)lua_tonumber(L, -1);//lua调用的参数之一
int b = (int)lua_tonumber(L, -2);//lua调用的参数之一
lua_pushnumber(L, sum(a, b));//把计算的加过压栈
return 1;//返回返回值的个数
}
lua_State *L = luaL_newstate();
luaL_openlibs(L);//打开L中的所有标准库,这样就可以使用print方法
lua_register(L, "sum", lsum);//把c函数lsum注册为lua的一个全局变量sum
int err = luaL_dofile(L, "test.lua"); //把lua文件加载成代码块,并运行
if (err){
return;
}
lua_close(L);
print("1 + 2 = " .. sum(1,2))
1+2=3
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有