Lua程式設計(九十)

2021-09-22 20:21:08 字數 662 閱讀 7578

下例是乙個更高階的示例,我們將編寫乙個呼叫lua函式的包裝程式,其中用到了c語言的stdarg的機制。這個包裝函式名為call_va, 它接受乙個待呼叫的全域性函式的名字,乙個描述引數型別和結果型別的字串、引數列表、以及存放結果的一組指向變數的指標。函式call_va會處理有關api的所有細節。

#include

void

call_va

(lua_state *l,

const

char

*func,

const

char

*sig,..

.)}}

endargs:

nres =

-nres;

while

(*sig)

case

'i':

case

's':

default

:error

(l,"invalid option (%c)",*

(sig-1)

);} nres++

;}

Lua程式設計(三)

通過昨天用lua程式語言解決八皇后問題,我對於lua語言的程式編寫有了大致的了解。今天開始了解lua的數值相關概念。在lua5.3中為數值格式提供了兩種選擇 一種為64位的integer型別,另一種則是雙精度的float型別。如果是資源受限的平台,如微控制器等我們可以使用精簡的32位數值格式。lua...

Lua程式設計(四)

字串是用於表示文字的手段。lua語言提供的字串是由一串位元組組成的序列。每個字元用8個位元位來儲存。雖然lua支援用任意一種方法來儲存unicode字串,但是最好在一切可能的情況下優先使用utf 8編碼。需要注意的是lua中的字串是不可變值,不能直接修改字串中的某個字元,僅能通過建立乙個新的字串來達...

Lua程式設計(七)

函式是對語句和表示式進行抽象的主要方式,呼叫函式時應使用一堆圓括號把引數列表括起來,即使不需要引數,也需要一對空括號 lua語言也為物件導向風格的呼叫 object oriented call 提供了冒號操作符。形如 o foo x 意為呼叫物件o的foo方法。乙個函式定義具有乙個函式名 name ...