婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > lua 基礎(chǔ)教程

lua 基礎(chǔ)教程

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

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

關(guān)于lua非常基礎(chǔ)的就不介紹了,咱們就從簡(jiǎn)單的測(cè)試開始吧。

在此之前如果沒有搭好lua在win32下的環(huán)境,請(qǐng)看 https://www.jb51.net/article/61451.htm

1.C/C++執(zhí)行l(wèi)ua腳本

我只是用改用了最新的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);
/*運(yùn)行腳本*/
luaL_dofile(pLuaState,"./script/hw.lua");
/*清除lua*/ 
lua_close(pLuaState);
/*暫停*/
cout"Press enter to exit…"endl;
getchar();
return 0;
}

hw.lua的源碼:

print("Hello Word!");

這個(gè)例子只是簡(jiǎn)單的執(zhí)行了一個(gè)lua腳本。

其中:lua_newstate是核心函數(shù),要求提供內(nèi)存分配函數(shù),luaL_newstate是輔助庫函數(shù),采用默認(rèn)的內(nèi)存分配函數(shù)。lua_open是5.0時(shí)代的產(chǎn)物,5.1是luaL_newstate的宏,5.2里面已經(jīng)沒有了。

2.C/C++調(diào)用lua函數(shù)

話不多說,直接上代碼

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

test.lua代碼為:

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

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

3.lua調(diào)用C/C++函數(shù)

代碼為:

#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)
{
/*得到參數(shù)個(gè)數(shù)*/
int n = lua_gettop(L);
/*定義和*/
double sum = 0;
/*循環(huán)變量*/
int i;
/*循環(huán)取值求和*/
for (i = 1; i = n; i++)
{
sum += lua_tonumber(L,i);
//coutsumendl;
}
//cout"fffffff"endl;
/*壓入平均值*/
lua_pushnumber(L,sum/n);
/*壓入和*/
lua_pushnumber(L,sum);
/*返回返回值個(gè)數(shù)*/
return 2;
}
int main()
{
/*初始化Lua虛擬機(jī)*/
lua_State *L = luaL_newstate();
/*打開lua基本庫*/
luaL_openlibs(L);
/*注冊(cè)函數(shù)*/
lua_register(L,"average",average);
/*運(yùn)行腳本*/
luaL_dofile(L,"./script/avg.lua");
/*清除lua虛擬機(jī)*/
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基礎(chǔ)教程之表(Table)學(xué)習(xí)筆記
  • Lua基礎(chǔ)教程之賦值語句、表達(dá)式、流程控制、函數(shù)學(xué)習(xí)筆記
  • 在Lua中使用模塊的基礎(chǔ)教程

標(biāo)簽:西寧 昌都 臨滄 海口 營口 南京 宿遷 泰安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《lua 基礎(chǔ)教程》,本文關(guān)鍵詞  lua,基礎(chǔ),教程,lua,基礎(chǔ),教程,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《lua 基礎(chǔ)教程》相關(guān)的同類信息!
  • 本頁收集關(guān)于lua 基礎(chǔ)教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    精品盗摄一区二区三区| 99久久99久久精品国产片果冻 | 蜜臀av性久久久久蜜臀aⅴ| 日韩在线播放一区二区| 精久久久久久久久久久| 99免费精品在线| 欧美日本一道本在线视频| 欧美草草影院在线视频| 自拍av一区二区三区| 婷婷国产在线综合| 国产精品亚洲成人| 欧美在线免费播放| 日韩欧美在线不卡| 欧美国产一区视频在线观看| 亚洲欧美国产三级| 黄色资源网久久资源365| 99国产精品99久久久久久| 日韩一区二区不卡| 亚洲乱码国产乱码精品精的特点| 蜜桃av噜噜一区| 欧美中文字幕一区二区三区 | 国产一区二区成人久久免费影院| 日本精品视频一区二区三区| 欧美电视剧免费观看| 亚洲欧美日韩综合aⅴ视频| 欧美a级理论片| 在线观看欧美精品| 亚洲国产成人私人影院tom| 日本伊人色综合网| 在线视频一区二区三| 国产亚洲精品精华液| 奇米色一区二区| 欧美精品 日韩| 洋洋成人永久网站入口| 成人免费视频一区二区| 精品国产自在久精品国产| 亚洲成人一区在线| 91啦中文在线观看| 国产精品乱人伦| 国产露脸91国语对白| 91精品国产高清一区二区三区| 亚洲视频一区在线| eeuss鲁片一区二区三区在线观看| 欧美v亚洲v综合ⅴ国产v| 香蕉影视欧美成人| 欧洲精品在线观看| 亚洲精品日韩综合观看成人91| 成人在线综合网| 久久综合久久综合久久综合| 久久国产精品免费| 欧美精品久久久久久久久老牛影院| 国产精品天美传媒| 9久草视频在线视频精品| 国产欧美日韩在线看| 老色鬼精品视频在线观看播放| 欧美色爱综合网| 亚洲一区二区在线播放相泽| 91高清视频在线| 欧美激情在线一区二区| 国产伦精品一区二区三区视频青涩 | 亚洲成人av在线电影| 91久久精品一区二区三区| 国产日韩三级在线| 国产成a人亚洲精| 久久综合999| 成人动漫av在线| 亚洲欧洲av色图| 欧美视频在线一区| 日本va欧美va欧美va精品| 久久综合九色综合97婷婷女人 | 国产在线精品免费av| 国产欧美中文在线| 97se亚洲国产综合自在线观| 亚洲免费观看视频| 欧美日韩1234| 国产一本一道久久香蕉| 中文字幕制服丝袜一区二区三区| 91丨porny丨首页| 日韩精品一二三区| 国产欧美一区二区三区在线看蜜臀 | 色av综合在线| 奇米影视7777精品一区二区| 久久久精品国产免大香伊| 91在线丨porny丨国产| 亚洲bdsm女犯bdsm网站| 久久综合网色—综合色88| 99久久精品国产导航| 午夜伊人狠狠久久| 国产视频一区在线播放| 欧美熟乱第一页| 国产精品香蕉一区二区三区| 亚洲免费资源在线播放| 日韩一区二区三区精品视频 | 国产iv一区二区三区| 亚洲国产精品久久久久婷婷884 | 久久久亚洲国产美女国产盗摄 | 亚洲欧美日韩系列| 日韩免费高清av| 91麻豆福利精品推荐| 男女性色大片免费观看一区二区| 中文字幕国产一区| 91精品欧美一区二区三区综合在| 成人黄色av网站在线| 蜜桃在线一区二区三区| 一区二区激情视频| 国产欧美日韩中文久久| 欧美一区二区三区日韩| 一本到一区二区三区| 精品在线观看免费| 视频一区视频二区在线观看| 国产精品欧美一级免费| 日韩精品一区二区三区在线播放| 91在线视频免费观看| 国产精品一线二线三线| 日韩中文字幕区一区有砖一区 | 欧美色精品在线视频| 不卡大黄网站免费看| 久久av资源网| 美女被吸乳得到大胸91| 亚洲国产一区视频| 亚洲欧美另类小说| 中文字幕一区二区三区在线不卡| 久久亚洲捆绑美女| 精品久久久久久久人人人人传媒 | 亚洲成人免费在线观看| 亚洲情趣在线观看| 国产精品美女久久久久久2018| 日韩精品自拍偷拍| 欧美绝品在线观看成人午夜影视| 一本一本久久a久久精品综合麻豆| 国产精品911| 国产精品一级黄| 国产激情91久久精品导航| 美女视频免费一区| 六月婷婷色综合| 开心九九激情九九欧美日韩精美视频电影| 亚洲第一成年网| 一区二区欧美精品| 一区二区三区欧美| 亚洲一区免费观看| 亚洲一区视频在线| 日本中文一区二区三区| 日韩avvvv在线播放| 美国十次综合导航| 国产揄拍国内精品对白| 国产剧情一区二区| 成人av在线一区二区| 9l国产精品久久久久麻豆| 色妞www精品视频| 在线观看www91| 欧美日韩夫妻久久| 欧美成人一区二区三区在线观看| 精品欧美黑人一区二区三区| 久久青草国产手机看片福利盒子| 久久亚洲欧美国产精品乐播 | 国产精品乱人伦中文| 亚洲精品乱码久久久久久黑人| 一级精品视频在线观看宜春院 | 日本在线观看不卡视频| 久久99精品久久久久| 国产精品99久久久| 一本久久a久久精品亚洲| 欧美群妇大交群的观看方式| 日韩欧美视频在线| 国产女人18水真多18精品一级做| ㊣最新国产の精品bt伙计久久| 亚洲麻豆国产自偷在线| 日日嗨av一区二区三区四区| 日本中文在线一区| 成人国产精品免费网站| 色综合久久久网| 91精品国产综合久久福利| 久久综合色婷婷| 亚洲美女少妇撒尿| 日日夜夜精品视频免费| 国产精品自在欧美一区| 欧美性猛交xxxx乱大交退制版| 日韩午夜精品视频| 亚洲欧洲精品天堂一级| 奇米精品一区二区三区在线观看 | 欧美日韩一本到| 久久在线免费观看| 天天操天天色综合| 成人免费毛片aaaaa**| 91精品国产欧美一区二区成人| 欧美激情资源网| 蜜桃精品视频在线| 欧美专区在线观看一区| 国产欧美日韩综合| 免费成人在线观看视频| av亚洲精华国产精华| 欧美一区二区日韩| 一区二区三区四区在线| 国产一区二区0| 91麻豆精品国产自产在线 | 亚洲福利一二三区| 成人免费毛片app| www激情久久| 蜜桃精品在线观看| 欧美男同性恋视频网站|