C 呼叫lua函式(無參 無返回值 無錯誤)

2021-09-26 16:22:05 字數 875 閱讀 6634

c++程式:

void main()

lual_openlibs(l);

int ret = lual_dofile(l, "main.lua");

lua_getglobal(l,"event");//獲取函式名

lua_pcall(l,0,0,0);//引數數量,函式返回值,錯誤輸出函式(lua的函式,位址)

}

lua程式:

function event()

print("c++ call lua function event")

end

執行結果:

當函式出錯時會將錯誤壓入棧中,此時可以在前後使用lua_gettop獲取棧中資料的個數。

改進一下c++和lua的**:

void main()

lual_openlibs(l);

int ret = lual_dofile(l, "main.lua");

printf("top = %d \n", lua_gettop(l));

lua_getglobal(l,"event");//獲取函式名

if (lua_pcall(l, 0, 0, 0) != 0)//引數數量,函式返回值,錯誤輸出函式(lua的函式,位址)

printf("top = %d \n", lua_gettop(l));

}

lua中**:

function event1()

print("c++ call lua function event")

end

執行結果:執行後將錯誤壓棧,top由0變成1

有返回值和無返回值函式

前面在定義函式時,有些函式使用了return語句,有些函式沒有使用return語句,使用return語句與不使用return語句有什麼區別呢?由前面的章節我們知道,若定義函式時沒有使用return語句,則預設返回乙個none。要返回乙個none,可以只寫乙個return,但要返回具體的數值,就需要在...

無返回值 C語言高階之路 函式 返回值!

c 語言的函式可以返回陣列以外 不包括陣列指標 的任何型別.不寫明返回型別,在以前的 c 語言版本中是預設返回 int,現在 c99 c 已不支援.void 表示沒有返回值,也就無須 return 語句 如果是其他語句必須有 return 語句.在 main 函式中 只是 main 函式 若忘掉 r...

無返回值,soap方式呼叫WebService

using system using system.web using system.xml using system.collections using system.net using system.text using system.io using system.xml.serializat...