小编Nic*_*WEI的帖子

这个宏是什么?

ruby.h,有很多功能宏定义如下:

static inline int
    #if defined(HAVE_PROTOTYPES)
    rb_type(VALUE obj)
    #else
    rb_type(obj)
       VALUE obj;
    #endif
    {
        if (FIXNUM_P(obj)) return T_FIXNUM;
        if (obj == Qnil) return T_NIL;
        if (obj == Qfalse) return T_FALSE;
        if (obj == Qtrue) return T_TRUE;
        if (obj == Qundef) return T_UNDEF;
        if (SYMBOL_P(obj)) return T_SYMBOL;
        return BUILTIN_TYPE(obj);
    }
Run Code Online (Sandbox Code Playgroud)

如果HAVE_PROTOTYPES==1,根据我的理解,这个功能将是这样的:

static inline int rb_type(VALUE obj)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

然而,如果HAVE_PROPOTYPES==0,函数定义将是这样的:

static inline int rb_type(VALUE obj)
      VALUE obj;
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我不明白这是否在语法上是正确的.我该怎么理解呢?

c ruby ruby-1.8

5
推荐指数
1
解决办法
107
查看次数

标签 统计

c ×1

ruby ×1

ruby-1.8 ×1