亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > lua 基礎教程

lua 基礎教程

熱門標簽:昆明電話外呼系統好么 杞縣地圖標注app 免費門店地圖標注注冊入駐 電話機器人每天搜索多少次 衡水外呼線路解決 艾比利外呼系統 外呼系統一天耗費多少流量 陜西便宜電銷機器人軟件 海口智能語音電銷機器人好用嗎

最近在看lua,覺得很有趣,發現沒有最新版本的例子,所以自己就別人的博客里弄了源碼,然后改成最新版本的lua C API.

關于lua非常基礎的就不介紹了,咱們就從簡單的測試開始吧。

在此之前如果沒有搭好lua在win32下的環境,請看 https://www.jb51.net/article/61451.htm

1.C/C++執行lua腳本

我只是用改用了最新的lua的C API。不多說,直接上代碼

#include iostream>
#include stdlib.h>
#include stdio.h>
#include string.h>
extern "C"
{
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
};
using namespace std;
int main()
{
lua_State *pLuaState = luaL_newstate();
/*載入lua基本庫*/
luaL_openlibs(pLuaState);
//luaopen_base(pLuaState);
//luaopen_io(pLuaState);        //替換老版本的lua_iolibopen(pLuaState);
//luaopen_string(pLuaState);      //替換老版本的lua_strlibopen(pLuaState);
//luaopen_math(pLuaState);     //替換老版本的lua_mathlibopen(pLuaState);
//luaopen_debug(pLuaState);     //替換老版本的lua_dblibopen(pLuaState);
/*運行腳本*/
luaL_dofile(pLuaState,"./script/hw.lua");
/*清除lua*/ 
lua_close(pLuaState);
/*暫停*/
cout"Press enter to exit…"endl;
getchar();
return 0;
}

hw.lua的源碼:

print("Hello Word!");

這個例子只是簡單的執行了一個lua腳本。

其中:lua_newstate是核心函數,要求提供內存分配函數,luaL_newstate是輔助庫函數,采用默認的內存分配函數。lua_open是5.0時代的產物,5.1是luaL_newstate的宏,5.2里面已經沒有了。

2.C/C++調用lua函數

話不多說,直接上代碼

#include iostream>
#include stdlib.h>
#include stdio.h>
#include string.h>
extern "C"
{
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
};
using namespace std;
/************************************************************************/
//函數功能:調用lua函數
//函數參數:
//     L lua虛擬機
//     x
//     y
//函數返回:
//     sum
//核心函數 lua_call()
/*
調用一個函數。
要調用一個函數請遵循以下協議: 首先,要調用的函數應該被壓入堆棧; 接著,把需要傳遞給這個函數的參數按正序壓棧;
這是指第一個參數首先壓棧。 最后調用一下 lua_call; nargs 是你壓入堆棧的參數個數。 當函數調用完畢后,所有的參數以及函數本身都會出棧。
而函數的返回值這時則被壓入堆棧。 返回值的個數將被調整為 nresults 個, 除非 nresults 被設置成 LUA_MULTRET。
在這種情況下,所有的返回值都被壓入堆棧中。 Lua 會保證返回值都放入棧空間中。
函數返回值將按正序壓棧(第一個返回值首先壓棧), 因此在調用結束后,最后一個返回值將被放在棧頂。
被調用函數內發生的錯誤將(通過 longjmp)一直上拋。
*/
/************************************************************************/
int luaadd(lua_State *L, int x, int y)
{
int sum;
/*通過名字獲取Lua函數*/
lua_getglobal(L,"add");
/*向棧中壓入第一個參數*/
lua_pushnumber(L,x);
/*向棧中壓入第二個參數*/
lua_pushnumber(L,y);
/*調用函數*/
lua_call(L,2,1);
/*得到結果
把給定索引處的 Lua 值轉換為 lua_Integer 這樣一個有符號整數類型。
這個 Lua 值必須是一個數字或是一個可以轉換為數字的字符串,否則,lua_tointeger 返回 0 。*/
sum = (int)lua_tointeger(L,-1);
/*從堆棧中彈出 n 個元素*/
//n
lua_pop(L,1);
return sum;
}
int main()
{
int sum;
/*初始化lua虛擬機*/
lua_State *L = luaL_newstate();
/*載入lua基本庫*/
luaL_openlibs(L);
/*載入腳本*/
luaL_dofile(L,"./script/test.lua");
/*調用lua函數*/
sum = luaadd(L,10,15);
/*顯示結果*/
cout"The sum = "sumendl;
/*清除lua虛擬機*/
lua_close(L);
/*顯示結果并暫停*/
cout"Press enter to exit…"endl;
getchar();
return 0;
}

test.lua代碼為:

function add(x,y)
return x + y;
end

其中關于lua的堆棧問題,目前我還沒有了解,希望大家多多指教。

3.lua調用C/C++函數

代碼為:

#include iostream>
#include stdlib.h>
#include stdio.h>
#include string.h>
extern "C"
{
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
};
using namespace std;
static int average(lua_State *L)
{
/*得到參數個數*/
int n = lua_gettop(L);
/*定義和*/
double sum = 0;
/*循環變量*/
int i;
/*循環取值求和*/
for (i = 1; i = n; i++)
{
sum += lua_tonumber(L,i);
//coutsumendl;
}
//cout"fffffff"endl;
/*壓入平均值*/
lua_pushnumber(L,sum/n);
/*壓入和*/
lua_pushnumber(L,sum);
/*返回返回值個數*/
return 2;
}
int main()
{
/*初始化Lua虛擬機*/
lua_State *L = luaL_newstate();
/*打開lua基本庫*/
luaL_openlibs(L);
/*注冊函數*/
lua_register(L,"average",average);
/*運行腳本*/
luaL_dofile(L,"./script/avg.lua");
/*清除lua虛擬機*/
lua_close(L);
/*打印暫停*/
cout"Press enter to exit…"endl;
getchar();
return 0;
}

avg.lua源碼為:

function main()
local avg,sum = average(2,2,2,2,2);
print("The avg is",avg);
print("The sum is", sum);
end
main();

您可能感興趣的文章:
  • Lua基礎教程之表(Table)學習筆記
  • Lua基礎教程之賦值語句、表達式、流程控制、函數學習筆記
  • 在Lua中使用模塊的基礎教程

標簽:西寧 昌都 臨滄 海口 營口 南京 宿遷 泰安

巨人網絡通訊聲明:本文標題《lua 基礎教程》,本文關鍵詞  lua,基礎,教程,lua,基礎,教程,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《lua 基礎教程》相關的同類信息!
  • 本頁收集關于lua 基礎教程的相關信息資訊供網民參考!
  • 推薦文章
    久久久久久久男人的天堂| 久久久成人网| 可以免费看毛片的网站| 91麻豆国产福利精品| 国产伦久视频免费观看 视频| 999久久狠狠免费精品| 国产网站免费视频| 青青久热| a级精品九九九大片免费看| 国产亚洲精品成人a在线| a级精品九九九大片免费看| 九九精品在线播放| 国产a网| 天天做日日干| 日本特黄特色aaa大片免费| 国产成人啪精品视频免费软件| 日韩中文字幕一区| 国产91精品一区| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 青青青草影院 | 免费国产在线观看不卡| 欧美另类videosbestsex视频| 久草免费资源| 国产高清在线精品一区a| 国产极品精频在线观看| 日本在线www| 色综合久久天天综线观看| 午夜久久网| 精品国产一级毛片| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产伦久视频免费观看视频| 欧美激情中文字幕一区二区| 欧美大片aaaa一级毛片| 亚洲 男人 天堂| 国产激情视频在线观看| 成人免费高清视频| 99色精品| 精品视频在线观看视频免费视频 | 国产a网| 亚洲 男人 天堂| 国产视频网站在线观看| 一级女性全黄久久生活片| 亚洲精品久久久中文字| 日日日夜夜操| 亚洲第一页乱| 成人a大片在线观看| 黄视频网站在线看| 午夜久久网| 精品久久久久久中文字幕一区| 久草免费资源| 日韩在线观看视频黄| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 精品久久久久久中文字幕一区| 午夜在线亚洲男人午在线| 免费的黄色小视频| 成人免费观看视频| 九九久久国产精品大片| 国产成人啪精品| 亚洲女初尝黑人巨高清在线观看| 天天色成人网| 高清一级片| 午夜家庭影院| 一级女性大黄生活片免费| 久久99中文字幕久久| 国产极品白嫩美女在线观看看| 成人影院一区二区三区| 欧美激情一区二区三区视频| 亚欧成人毛片一区二区三区四区| 午夜在线观看视频免费 成人| 一a一级片| 精品国产一区二区三区久久久狼 | 韩国毛片免费| 黄视频网站在线观看| 日韩男人天堂| 高清一级片| 青青久久精品| 九九久久国产精品| 青青久久精品国产免费看| 日日爽天天| 99久久精品国产高清一区二区 | 日韩字幕在线| 日本在线不卡免费视频一区| 日本免费乱人伦在线观看 | 日韩avdvd| 二级特黄绝大片免费视频大片| 成人免费观看视频| 国产不卡在线观看视频| 国产国语对白一级毛片| 国产精品免费久久| 九九精品在线播放| 欧美激情一区二区三区视频 | 国产国语对白一级毛片| 亚久久伊人精品青青草原2020| 九九精品影院| 台湾美女古装一级毛片| 国产高清视频免费观看| 午夜激情视频在线观看| 尤物视频网站在线观看| 日韩在线观看免费| 色综合久久天天综合观看| 99热精品在线| 欧美一区二区三区在线观看| 四虎影视库国产精品一区| 日本伦理片网站| 久久久成人网| 免费的黄色小视频| 99色视频在线| 黄色短视屏| 欧美另类videosbestsex| 青青青草视频在线观看| 成人影院一区二区三区| 欧美激情伊人| 97视频免费在线观看| 色综合久久手机在线| 中文字幕97| 欧美激情一区二区三区视频 | 欧美a级v片不卡在线观看| 日本免费区| 国产不卡福利| 日韩字幕在线| 国产极品白嫩美女在线观看看| 精品视频一区二区| 精品视频一区二区三区免费| 欧美另类videosbestsex视频| 免费国产在线观看不卡| 99久久精品国产片| 国产激情一区二区三区| 成人a大片在线观看| 午夜精品国产自在现线拍| 99热精品在线| 成人免费网站久久久| 国产一级生活片| 精品视频在线观看视频免费视频| 91麻豆tv| 九九热精品免费观看| 高清一级淫片a级中文字幕 | 精品美女| 日韩在线观看免费完整版视频| 亚洲爆爽| 国产不卡在线播放| 久久国产精品自线拍免费| 国产a免费观看| 精品视频在线看 | 国产不卡高清在线观看视频| 国产伦精品一区二区三区无广告| 国产极品白嫩美女在线观看看| 999精品影视在线观看| 国产高清在线精品一区a| 久久国产精品只做精品| 欧美激情一区二区三区在线| 久久99这里只有精品国产| 国产麻豆精品hdvideoss| 国产极品白嫩美女在线观看看| 尤物视频网站在线| 欧美激情伊人| 91麻豆精品国产高清在线| 亚洲精品中文一区不卡 | 国产视频一区二区三区四区| 成人免费网站久久久| 日韩男人天堂| 国产a网| 国产一区免费在线观看| 天天色成人网| 91麻豆精品国产自产在线 | 国产伦理精品| 成人a大片高清在线观看| 国产综合91天堂亚洲国产| 韩国毛片 免费| 日本在线不卡视频| 国产综合成人观看在线| 天天做人人爱夜夜爽2020毛片| 色综合久久天天综合观看| 九九热精品免费观看| 国产不卡福利| 国产一区二区精品久| 四虎久久精品国产| 一级毛片视频免费| 日韩在线观看网站| 国产综合91天堂亚洲国产| 精品视频在线观看免费| 国产一区免费观看| 四虎影视久久久免费| 成人免费一级毛片在线播放视频| 99色吧| 国产精品自拍亚洲| 麻豆网站在线免费观看| 香蕉视频三级| 精品视频在线观看一区二区三区| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 四虎久久影院| 日本在线www| 精品视频在线观看视频免费视频 | 亚洲女初尝黑人巨高清在线观看| 午夜激情视频在线观看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 99热视热频这里只有精品| 99久久精品国产国产毛片 | 欧美大片a一级毛片视频| 999久久狠狠免费精品| 二级特黄绝大片免费视频大片|