2011-10-04 69 views
0

IM在Ruby的C扩展的工作,我有以下的C程序代码,什么是变量的类型?

VALUE var = myFunction(arg1, arg2); 
int varType = TYPE(var); 
printf("Type of the var is :: %d", varType); 

以上的printf给输出如下:

Type of the var is :: 34 

由于myFunction是inbuild功能我不知道的返回类型该功能。 任何人都可以告诉我从myFunction返回的“var”变量类型吗? 在此先感谢。

+0

检查函数的函数原型在libray的头文件或者SDK,不管它是什么的一部分。 –

+0

你的int varType映射到了什么地方?否则var的类型将是一个int我猜 –

+0

@TonyTheLion:不是真的,除非你看到'TYPE()'做了什么,否则不能这么说,它可能是一个宏,它将一个字符串映射为一个int,并返回int 。 –

回答

3

TYPE宏返回值为ruby.h中列举的值。从那里,它跟随着34是T_DATA,这是一个wrapped C structure

+0

非常感谢jpalecek – BSalunke

+0

jpalecek,我有一个问题,我们可以找到该变量的类的确切类型,即var。 myFunction()函数返回某个类的对象。我必须找到类名。任何建议找到类名? – BSalunke

0

变种RETURNING FROM myFunction是VALUE

和VALUE的类型在ruby.h被定义的typedef

定义

typedef unsigned long VALUE; 
相关问题