• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

cloudwu/luacc: LUACC allows you write C code in lua

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

cloudwu/luacc

开源软件地址(OpenSource Url):

https://github.com/cloudwu/luacc

开源编程语言(OpenSource Language):

Lua 69.0%

开源软件介绍(OpenSource Introduction):

LUACC allows you write C code in lua .

It seems like Cython to python.

Export C routine for lua

local luacc = require "luacc"

local f = luacc.routine [[
	[in] a int
	[in] b int
	[ret] c int
	[ret] d int

	int c = a + b;
	int d = a - b;
]]

print(f(2,1))	-- 3	1

Import C function for later call from C routine

local luacc = require "luacc"

luacc.cfunction [[

int max(int a, int b) {
	return a > b ? a:b;
}

int min(int a, int b) {
	return a < b ? a:b;
}

]]

local f = luacc.routine [[
	[in] a int
	[in] b int
	[ret] c int
	[ret] d int

	int c = max(a,b);
	int d = min(a,b);
]]

print(f(2,1))	-- 2	1

Define user type

local luacc = require "luacc"

luacc.struct ( "foo", { x = "int" , y = "int" })

local luacc.cfunction [[
void swap(foo &f) {
	int temp = f->x;
	f->x = f->y;
	f->y = temp;
}
]]

local f = luacc.routine [[
	[inout] x foo
	
	swap(&x);
]]

local foo = { x = 1, y = 2}
f(foo)

print(foo.x, foo.y)	-- 2	1

It doesn't support nest type yet.

Build-in types

  • int
  • bool
  • float
  • double
  • string (const char *)
  • object (string table userdata nil)

Make

Question ?




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap