c使用Lua函式(包含模糊引數)

2021-04-25 14:22:40 字數 1013 閱讀 1610

有位網遊給我個題,叫我寫乙個模糊引數的lua使用。感覺很有用途,因為c 函式與lua函式功能的統一,對c程式設計師程式設計是十分有利的。

對於函式引數是不定的,這種函式可能有些人並不清楚,但是卻在一直使用而不清楚其內幕。在program lua中有這樣的一章。這裡不給出了。現在先說下c++是如何模糊的。

都是使用過sprintf()函式。有些人可能c++用慣了可能沒用過sprintf()函式,這裡給個小例子回憶下當年c的情景。

cpp檔案:main.cpp

#include

using namespace std;

int main()

{char buffer[100];

int i = 5;

char * str = "lua指令碼程式設計!";

sprintf(buffer,"%s || %d",str,i);

cout《輸出:--》 lua指令碼程式設計! || 5

這個例子非常簡單,學過c的沒有不知道的。

問題來了,這個sprintf()函式引數是不定的。現在就要自己實現乙個sprintf函式這樣的函式,這樣的函式使用是非常方便的。像tsengine中的tsfont引擎,都是用模糊函式輸出文字,nehe教程中有這樣函式的展現,本人只是班門弄斧。但是nehe只是給出了這個問題,其實模糊函式不止光能這麼用。

下面的例子就是寫乙個模糊函式與lua的模糊函式的協作。

**就不貼出了,用起來很簡單。

#include "lua_fun.h"

lua_state *l;

int main (void)

{l = lua_open();

lual_openlibs (l);

lual_loadfile(l, "luatext.lua");

lua_pcall(l, 0, 0, 0);

/////note:            |function    |(...)argument                             |endflag

cout

C函式返回多個引數給lua

lua通過乙個執行時棧來維護引數傳遞及返回,使用lua to 等函式獲取lua傳遞到c函式的引數,使用lua push 從c函式返回值到lua指令碼。此外也可以使用lua getglobal從c函式獲取lua指令碼定義的全域性變數。include include include for functi...

lua 函式的可變引數

lua 函式的可變引數我覺得是蠻好用的,傳入,解包都比較清晰明了 1 遍歷可變引數 local function test local arg for k,v in pairs arg do print k is v endendtest 1,2,33,ab var,eg 執行結果為 可以看到k值是...

lua 函式的可變引數

主要掌握 1 虛變數 乙個下劃線 2 lua將函式的可變引數放在乙個叫 arg 的表中,除了引數以外,arg表中還有乙個域n表示引數的個數。1do2 function fun x,y,3end 45 fun 1 x 1,y nil,arg 6 fun 1,2 x 1,y 2 arg 7 fun 1,...