有位網遊給我個題,叫我寫乙個模糊引數的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,...