3

我想做相当于

::Infinity= 1.0/0

在用 C 编写的 ruby​​ 扩展中。

到目前为止,我想出了

rb_const_set(rb_mKernel, rb_intern("Infinity"), rb_float_new(1.0/0));

由于被零除,这给了我一个编译器警告。和

rb_const_set(rb_mKernel, rb_intern("Infinity"), rb_eval_string("1.0/0"));

由于使用了eval.

什么是干净的适当解决方案?

4

1 回答 1

1

我在这个问题中找到了答案。

rb_const_set(rb_mKernel, rb_intern("Infinity"), rb_float_new(INFINITY));

对此没有编译器警告。

于 2011-10-28T22:56:28.163 回答