2011-10-04 78 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; 
相關問題