中易网

如何将char*转成lua的string类型

答案:1  悬赏:20  
解决时间 2021-01-07 08:32
如何将char*转成lua的string类型
最佳答案
先看一个简单的例子,如何实现一个简单的函数返回给定数值的sin值(更专业的实现应该检查他的参数是否为一个数字):
static int l_sin (lua_State *L) {
double d = lua_tonumber(L, 1);
lua_pushnumber(L, sin(d));
return 1;
}
任何在Lua中注册的函数必须有同样的原型,这个原型声明定义就是lua.h中的lua_CFunction:
typedef int (*lua_CFunction) (lua_State *L);
从C的角度来看,一个C函数接受单一的参数Lua state,返回一个表示返回值个数的数字。所以,函数在将返回值入栈之前不需要清理栈,函数返回之后,Lua自动的清除栈中返回结果下面的所有内容。
我们要想在Lua使用这个函数,还必须首先注册这个函数。我们使用lua_pushcfunction来完成这个任务:他获取指向C函数的指针,并在Lua中创建一个function类型的值来表示这个函数。一个quick-and-dirty的解决方案是将这段代码直接放到lua.c文件中,并在调用lua_open后面适当的位置加上下面两行:
lua_pushcfunction(l, l_sin);
lua_setglobal(l, "mysin");
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
凤凰岛国际抗衰中心地址在什么地方,我要处理
最近发现英雄杀3v3一个神组合,以前这组合见
LM324和TL431怎么做24V的电池电量指示电路。
求婚戒指什么牌子知名
长兴中心农贸市场停车场地址在哪,我要去那里
谁给个拳皇2002出招表啊,http://www
Flash 播放器不能用了
去塞班和马尔代夫哪里旅行好?
CSOL客户端版本不一致
PVC浸胶手套成品的胶很硬是为什么
用钱叠纸裤子怎么叠
早上锻鍊身体比较好还是晚上好
女人问感情。请大师指点
为什么我每次用电卷棒卷头发没多久头发就不卷
7.2x-2.2x=0.5简易方程解答
推荐资讯
深圳租房怎么找
大学生应该遵守哪些社会公德?越详细越好,拜
斗地主游戏,刚开始上面的三张牌是什么意思
英雄联盟现在的主题歌是日文的,我想知道是叫
现在眉毛需要注意什么
王者荣耀·最强辅助,现在哪个辅助最叼
顺维修APP在哪里下载?
《太空战舰死亡之翼》游戏配置要求高吗
百香果硬的吃好还是软的吃好
有谁知道临颍有哪些景点?
私借,现在借过一次还能借吗
内蒙古乌海工业区染色厂建设了污水处理,但是
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?