すごくメモ帳

すごくほぼメモ帳ぐらいなブログ

2020-01-08から1日間の記事一覧

Rubyの拡張ライブラリー入門シリーズ③ (アクセサ: rb_define_attr)

アクセサを定義する アクセサとは アクセサとは、インスタンス変数に対して読み書きするものです。 def hoge @hoge end クラス内で上のように定義すると、インスタンス変数が示すものを読み込むことができます。 def hoge= val @hoge = val end とクラスで定…

Rubyの拡張ライブラリー入門シリーズ② (クラスの作成と定義と継承: rb_define_class, メソッドの定義: rb_define_method)

クラスを作る // hoge.c #include <stdio.h> #include <ruby.h> VALUE cHoge; static VALUE hoge_func(VALUE obj){ puts("Hello, world"); return Qtrue; } void Init_hoge(void){ cHoge = rb_define_class("Hoge", rb_cObject); rb_define_method(cHoge, "func", hoge_func, </ruby.h></stdio.h>…

Rubyの拡張ライブラリー入門シリーズ① (コンパイルしてHello, world)

Hello, world を書いてみる Hello, worldをC言語で書く // hoge.c #include <stdio.h> void Init_hoge(void){ puts("Hello, world!"); } extconf.rbを作る makefileを作るためにextconf.rbを作ります。 作ったら、実行してmake # extconf.rb require 'mkmf' create_ma</stdio.h>…