欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言中調(diào)用Lua函數(shù)實例

 更新時間:2015年04月23日 10:12:30   投稿:junjie  
這篇文章主要介紹了C語言中調(diào)用Lua函數(shù)實例,本文講解了調(diào)用一個Lua函數(shù)的步驟和C語言調(diào)用Lua函數(shù)實例,需要的朋友可以參考下

記得上學(xué)時,初中英文課本中,上網(wǎng)叫做surfing the internet,中文叫網(wǎng)上沖浪。那個時期,人們經(jīng)常稱互聯(lián)網(wǎng)為賽博空間。如今工作了,大量的零碎時間用于上微博,知乎,QQ,這些碎片化的閱讀讓人讀起來輕松,也能獲取些粗淺的信息。然而它們是消耗時間的黑洞,時間就這樣一分一秒地飛逝,年末的時候,知乎會告訴你回答了多少問題,閱讀了相當(dāng)于一部《紅樓夢》那么多的文字。只是當(dāng)你靜下來一想,這些淺閱讀并沒給你帶來有深度,系統(tǒng)的知識。在你的時間線上,兩條相鄰信息往往是八竿子也打不著的。而且你還時不時去看看關(guān)注者有沒有更新,期待讓你眼前一亮的信息。結(jié)果往往是趁興而去,敗興而回。屏幕上的信息永無止境地滾動著,是如此的熱鬧,仿佛每個人都在狂歡,而我的內(nèi)心卻如此的空虛與孤獨。

在lua API中,調(diào)用一個函數(shù)的步驟很簡單:

1.壓入你要調(diào)用的函數(shù),使用lua_getglobal。
2.壓入調(diào)用參數(shù)。
3.使用lua_pcall
4.從棧中彈出結(jié)果。

舉例說明,假設(shè)你有這么一個lua函數(shù):

復(fù)制代碼 代碼如下:

function f (x, y)
     return (x^2 * math.sin(y))/(1 - x)
end

那么,我們就可以定義個c函數(shù)來封裝這個調(diào)用:
復(fù)制代碼 代碼如下:

/* call a function 'f' defined in Lua */
double f (double x, double y)
{
double z;
lua_getglobal(L, "f");
lua_pushnumber(L, x);
lua_pushnumber(L, y);
/* do the call (2 arguments, 1 result) */
if (lua_pcall(L, 2, 1, 0) != 0)
     error(L, "error running function 'f': %s",
lua_tostring(L, -1));

if (!lua_isnumber(L, -1))
     error(L, "function 'f' must return a number");
z = lua_tonumber(L, -1);
lua_pop(L, 1);
return z;
}


lua_pcall在壓入結(jié)果的之前,會將函數(shù),和參數(shù)彈出,如果返回多個結(jié)果,第一個最先壓入。如果lua_pcall運行出錯,那么會返回個非0值。
(完)

相關(guān)文章

  • 使用Lua來擴(kuò)展C++程序的方法

    使用Lua來擴(kuò)展C++程序的方法

    這篇文章主要介紹了使用Lua來擴(kuò)展C++程序的方法,盡管更多的時候人們或許會想用C++來擴(kuò)展Lua...需要的朋友可以參考下
    2015-07-07
  • Lua教程(十三):弱引用table

    Lua教程(十三):弱引用table

    這篇文章主要介紹了Lua教程(十三):弱引用table,一個table的弱引用類型是通過其元表的__mode字段來決定的,如果該值為包含字符"k",那么table就是key弱引用,如果包含"v",則是value弱引用,如果兩個字符均存在,就是key/value弱引用,需要的朋友可以參考下
    2015-04-04
  • Cocos2d-x中調(diào)用Lua及HelloWorld.lua源碼分解

    Cocos2d-x中調(diào)用Lua及HelloWorld.lua源碼分解

    這篇文章主要介紹了Cocos2d-x中調(diào)用Lua及HelloWorld.lua源碼分解,本文最后總結(jié)了一些Lua的語法,需要的朋友可以參考下
    2014-09-09
  • Lua腳本語言入門筆記

    Lua腳本語言入門筆記

    這篇文章主要介紹了Lua腳本語言入門筆記,本文講解了什么是Lua、Lua里的注釋、Lua里的變量、Lua里的運算符、Lua里的數(shù)據(jù)類型、Lua里的代碼塊、Lua里的關(guān)系類型、Lua里的函數(shù)、Lua里的類等內(nèi)容,需要的朋友可以參考下
    2014-12-12
  • Lua讀寫文件代碼示例

    Lua讀寫文件代碼示例

    這篇文章主要介紹了Lua讀寫文件代碼示例,本文講解了讀寫文件的模式以及讀寫文件代碼實例,需要的朋友可以參考下
    2015-04-04
  • 詳解Lua中if ... else語句的使用方法

    詳解Lua中if ... else語句的使用方法

    這篇文章主要介紹了詳解Lua中if ... else語句的使用方法,是Lua入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-05-05
  • Lua loadstring函數(shù)用法實例

    Lua loadstring函數(shù)用法實例

    這篇文章主要介紹了Lua loadstring函數(shù)用法實例,loadstring最典型的用處是去執(zhí)行外部代碼,也就是位于程序之外的代碼,需要的朋友可以參考下
    2015-04-04
  • Lua教程(七):數(shù)據(jù)結(jié)構(gòu)詳解

    Lua教程(七):數(shù)據(jù)結(jié)構(gòu)詳解

    這篇文章主要介紹了Lua教程(七):數(shù)據(jù)結(jié)構(gòu)詳解,本文講解了數(shù)組、二維數(shù)組、鏈表、隊列與雙向隊列、 集合和包(Bag)、StringBuilder等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • C++中調(diào)用Lua配置文件和響應(yīng)函數(shù)示例

    C++中調(diào)用Lua配置文件和響應(yīng)函數(shù)示例

    這篇文章主要介紹了C++中調(diào)用Lua配置文件和響應(yīng)函數(shù)示例,本文使用Lua文件作為配置文件,并寫了幾個響應(yīng)函數(shù)以便在C++中使用,需要的朋友可以參考下
    2015-07-07
  • Lua和C++的通信流程分解

    Lua和C++的通信流程分解

    這篇文章主要介紹了Lua和C++的通信流程分解,本文用一張圖講解了Lua和C++之間的通信流程,并對每一步做了分解,需要的朋友可以參考下
    2014-09-09

最新評論