c使用Lua函数(包含模糊参数)

本文介绍了一个模糊参数的Lua函数使用方法,并通过一个C++与Lua交互的实例展示了如何实现类似sprintf()的不定参数函数,强调了该技术对于C程序员的重要性。

有位网游给我个题,叫我写一个模糊参数的lua使用。感觉很有用途,因为c 函数与lua函数功能的统一,对c程序员编程是十分有利的。

 

对于函数参数是不定的,这种函数可能有些人并不清楚,但是却在一直使用而不清楚其内幕。在program lua中有这样的一章。这里不给出了。现在先说下c++是如何模糊的。

 

都是使用过sprintf()函数。有些人可能c++用惯了可能没用过sprintf()函数,这里给个小例子回忆下当年c的情景。

 

cpp文件:main.cpp

--------------------------------------------------------------------------

 

#include <iostream>

using namespace std;

int main()
{
    char buffer[100];
    int i = 5;
    char * str = "lua脚本编程!";

    sprintf(buffer,"%s || %d",str,i);

    cout<<buffer<<endl;

    return 0;
}

 

----------------------------------------------------------------------------

 

输出:--》 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<<Multiform("multiform",1,2,3,4,5,6,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,LUA_MULTFUN_END)<<endl;
    ///////////////////////////////////////////////////////////////////////////////

    lua_close(L);
    getchar();
    return 0;
}

 

----------------------------------------------------------------------------

 

纳米机器人下载地址:Demo下载

http://www.namipan.com/d/2696cb127665a4306f22f7f6cab51a2e422c2568a1160000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值