lua中调用c++函数

来源:互联网 发布:mac mysql phpmyadmin 编辑:程序博客网 时间:2024/06/09 23:00

From: http://www.cnblogs.com/orez88/articles/2136491.html

// average.cpp// 演示lua调用C函数求和及平均值// 环境: Fedora20 + lua5.2#include <stdio.h>#include <lua.hpp>/* 指向Lua解释器的指针 */lua_State* L = NULL;static int average(lua_State *L)// 求一系列数的平均数及总和{double sum = 0;int i;int n = lua_gettop(L);// 获得栈中参数个数for (i = 1; i <= n; i++){sum += lua_tonumber(L, i);// 求和}lua_pushnumber(L, sum / n);// 压入平均值lua_pushnumber(L, sum);// 压入总和return 2;// 函数返回值个数}int main ( int argc, char *argv[] ){L = luaL_newstate();luaL_openlibs(L);lua_register(L, "average", average);// 向lua注册c函数luaL_dofile(L, "avg.lua");// 运行lua文件lua_close(L);return 0;}


avg.lua:

-- call a C++ function
avg, sum = average(10, 20, 30, 40, 50)
print("The average is ", avg)

print("The sum is ", sum)


0 0
原创粉丝点击