0
현재 C 확장 루비를 테스트 중입니다. 다음 테스트 모듈을 컴파일하고 설치됩니다 :c 모듈로 Ruby를 확장하면 이상한 값이 반환됩니다. 설명해주십시오 ...
# include "ruby.h"
static VALUE t_init(VALUE self)
{
return self;
}
static VALUE t_check(VALUE self)
{
return 15;
}
VALUE Qmodule;
VALUE FlagValueClass;
void Init_Flags()
{
Qmodule = rb_define_module("Q");
FlagValueClass = rb_define_class_under(Qmodule, "Flags", rb_cObject);
rb_define_method(FlagValueClass, "initialize", t_init, 0);
rb_define_method(FlagValueClass, "check", t_check, 0);
}
을하지만 IRB에로드 할 때 :
1.9.3-p286 :002 > require 'Q/Flags'
=> true
1.9.3-p286 :003 > a = Q::Flags
=> Q::Flags
1.9.3-p286 :004 > a = Q::Flags.new
=> #<Q::Flags:0x00000001fa78e0>
1.9.3-p286 :005 > puts a.check()
=> 7
을 ... 내가 대신 내가 기대 15
느릅 나무의 7
를 얻을. 누군가 여기서 무슨 일이 일어 났는지 설명해 주시겠습니까?