深入探索:用C语言扩展Ruby的实用指南
1. 扩展Ruby的基础认知
在编程世界里,Ruby是一门功能强大且灵活的编程语言,它允许开发者通过编写Ruby代码轻松添加新特性。不过,有时我们需要与底层事物进行交互,这时使用C语言编写的底层代码就能发挥巨大作用,为我们带来无限可能。
比如,想象我们正在为日落餐厅和烧烤店打造一个定制的联网点唱机,它要能从硬盘播放MP3音频文件,也能从CD点唱机播放音频CD。我们希望用Ruby程序来控制这个点唱机的硬件,而硬件供应商给了我们一个C头文件和一个二进制库,我们的任务就是构建一个Ruby对象,让它能调用合适的C函数。
2. 编写第一个扩展
为了初步了解扩展的编写过程,我们来编写一个简单的扩展。这个扩展只是对整个流程的测试,它所实现的功能用纯Ruby代码也能完成。
以下是对应的Ruby类:
class MyTest
def initialize
@arr = Array.new
end
def add(obj)
@arr.push(obj)
end
end
下面是用C语言实现的等效代码:
#include "ruby.h"
static int id_push;
static VALUE t_init(VALUE self)
{
VALUE arr;
arr = rb_ary_new();
rb_iv_set(self, "@arr", arr);
r
超级会员免费看
订阅专栏 解锁全文
30

被折叠的 条评论
为什么被折叠?



