亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Lua中調(diào)用C++函數(shù)示例

 更新時間:2015年07月09日 09:49:09   投稿:junjie  
這篇文章主要介紹了Lua中調(diào)用C++函數(shù)示例,本文給出的C++函數(shù)average()演示了如何接受多個參數(shù)且返回超過一個值,需要的朋友可以參考下

Lua當然也能夠調(diào)用C中定義的函數(shù)。一個平均數(shù)的例子,解釋一下。
  
下面給出的C++函數(shù)average()演示了如何接受多個參數(shù)且返回超過一個值。
1.lua_gettop函數(shù)返回棧頂?shù)乃饕?。因為在Lua中棧是從1開始編號的,因此該函數(shù)獲得的值就是參數(shù)的個數(shù)。

2.在for循環(huán)中計算所有參數(shù)之和。
3.調(diào)用lua_pushnumber()將參數(shù)的平均值壓棧。 
4.最后,函數(shù)返回1,說明有一個返回值在棧中。
現(xiàn)在C++函數(shù)已經(jīng)被定義好了,我們必須將它告訴Lua解釋器。這將在main函數(shù)中初始化Lua解釋器和載入庫完成之后完成注冊函數(shù):

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

lua_register(L, "avg", average);  //第二參數(shù)為Lua中調(diào)用的函數(shù)名 

 
C++端:
 

#include "stdafx.h" 
#include<stdio.h> 
 
extern "C" { //如不用extern會出現(xiàn)連接錯誤,編譯成了C++文件 
#include <lua.h> 
#include <lualib.h> 
#include <lauxlib.h> 
} 
 
int average(lua_State *L){ 
 int n= lua_gettop(L); 
 int i; 
 double sum=0; 
 for(i=0;i<n;i++){ 
  sum+=lua_tonumber(L,-1); 
  lua_pop(L,1); 
 } 
 lua_pushnumber(L,sum/n); 
 if(!lua_isnumber(L,-1)) 
  luaL_error(L,"push error!\n"); 
 return 1; 
} 
 
int _tmain(int argc, _TCHAR* argv[]) 
{ 
 lua_State* L = lua_open(); 
 luaL_openlibs(L); //新版本庫添加的方法 
 
 lua_register(L,"avg",average); 
 luaL_dofile(L,"cof.lua"); 
 
 getchar(); 
 return 0; 
} 

Lua文件:

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

print("avg is ",avg(1,2,3,4,5,6,7,8)) 

運行程序即可實現(xiàn)求平均數(shù)的功能

相關(guān)文章

  • Lua中基本的數(shù)據(jù)類型、表達式與流程控制語句講解

    Lua中基本的數(shù)據(jù)類型、表達式與流程控制語句講解

    這篇文章主要介紹了Lua中基本的數(shù)據(jù)類型、表達式與流程控制語句講解,總結(jié)了Lua入門學(xué)習中的基礎(chǔ)語法知識,需要的朋友可以參考下
    2016-06-06
  • Lua判斷一個目錄或文件是否存在的方法

    Lua判斷一個目錄或文件是否存在的方法

    這篇文章主要介紹了Lua判斷一個目錄或文件是否存在的方法,Lua中可以使用io.open判斷文件或目錄是否存在,本文總結(jié)了判斷方法,并給出了一個自定義函數(shù),需要的朋友可以參考下
    2015-04-04
  • Lua中實現(xiàn)StringBuffer功能

    Lua中實現(xiàn)StringBuffer功能

    這篇文章主要介紹了Lua中實現(xiàn)StringBuffer功能,本文給出了實現(xiàn)代碼和調(diào)用代碼,需要的朋友可以參考下
    2014-11-11
  • Lua中table的遍歷詳解

    Lua中table的遍歷詳解

    這篇文章主要介紹了Lua中table的遍歷詳解,本文講解了4種遍歷方法,并詳細分析了這4種方法的特點、使用環(huán)境、相關(guān)知識等,需要的朋友可以參考下
    2015-04-04
  • Lua和C語言的交互詳解

    Lua和C語言的交互詳解

    這篇文章主要介紹了Lua和C語言的交互詳解,Lua和C語言通過棧完成交互,本文結(jié)合代碼實例詳細講解了交互的方法,需要的朋友可以參考下
    2014-09-09
  • 讓你的python代碼更加pythonic(簡練、明確、優(yōu)雅)

    讓你的python代碼更加pythonic(簡練、明確、優(yōu)雅)

    這篇文章主要介紹了讓你的python代碼更加pythonic(簡練、明確、優(yōu)雅),本文講解的是一種讓代碼更加清晰、簡練、明確、優(yōu)雅的書寫方法,需要的朋友可以參考下
    2014-10-10
  • Lua教程(十一):模塊與包詳解

    Lua教程(十一):模塊與包詳解

    這篇文章主要介紹了Lua教程(十一):模塊與包詳解,本文講解了require函數(shù)、 編寫模塊的基本方法、使用環(huán)境、module函數(shù)等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • Lua的編譯、執(zhí)行和調(diào)試技術(shù)介紹

    Lua的編譯、執(zhí)行和調(diào)試技術(shù)介紹

    這篇文章主要介紹了Lua的編譯、執(zhí)行和調(diào)試技術(shù)介紹,本文著重講解了對錯誤的處理,另外也講解了編譯和執(zhí)行等知識,需要的朋友可以參考下
    2015-04-04
  • Lua腳本語言基本語法快速入門教程

    Lua腳本語言基本語法快速入門教程

    這篇文章主要介紹了Lua腳本語言基本語法快速入門教程,本文是一個簡易教程,快速的羅列了常用語法,有一定編程語言基礎(chǔ)的同學(xué)更容易看芯片,需要的朋友可以參考下
    2015-07-07
  • Lua中類的實現(xiàn)

    Lua中類的實現(xiàn)

    Lua中沒有類的概念,但我們可以利用Lua本身的語言特性來實現(xiàn)類。 下文將詳細的解釋在Lua中實現(xiàn)類的原理
    2015-04-04

最新評論