在Lua中调用C函数
Lua调用C语言中的函数是通过栈来进行参数传递的,这与大部分编程语言的内部函数调用的实现一致。
我们先实现如下C代码
1 |
|
我们把上面的代码保存在 mylib.c
文件中,随后使用如下命令对源代码进行编译得到 mylib.so
文件
gcc mylib.c -fPIC -shared -o mylib.so -I/usr/local/include/lua5.3 -llua5.3
得到动态链接库之后我们在当前文件夹下创建 test.lua
文件,之后输入如下代码
1 | package.cpath = './?.so;' .. package.cpath -- 把库文件添加到环境变量中 |
执行 lua test.lua
得到如下结果:
第一个参数:1.000000
第二个参数:2.000000
3.0
2333 和 666 交换位置
666 2333
1887
40
47.175
至此我们就使用Lua成功的调用了C语言中的函数,我们发现C语言的执行效率差不多是Lua的四十多倍(C语言的执行效率是Python的80多倍),可见Lua作为一个脚本语言,其执行速度还是很快的。
参考
本文链接:
https://www.nosuchfield.com/2019/05/17/Call-C-function-in-Lua/
版权声明:
本博客所有文章均采用
CC BY-NC-SA 4.0 许可协议,转载请注明出处!