2015-06-05 15 views
0

我正在學習C語言。有什麼辦法從字符串值中獲取實際類型?

有什麼好的/合理的方式從字符串值中獲取實際類型?

我已經聽說sizeof運營商是差不多一個編譯時的東西。

假設我們有以下可能在運行時提供的字符串文字。

char *name_of_long_long_int = "long long int"; 

有什麼辦法可以做一些效果跟隨?

size_t size_of_long_long_int = sizeof(long long int); 
+2

你的意思是'從字符串值中獲取實際類型的方式?在C字符串中表示爲字符集,其類型應該是'char'類似'char *'或'char a []'..爲了計算長度,你可以使用'strlen()' – Gopi

+0

@Gopi對不起混亂。我其實想知道C是否有類似[Class.forName(String)](http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#forName-java.lang .String-) –

+1

@JinKwon,不,沒有。 –

回答

1

不,沒有內置函數可以做這種映射。

但是,您可以使用if-else或switch結構來限制您的應用程序。

有一個稱爲「typedef.h」一個庫//它在C++中,我不知道關於C

它像type.id(),它可以做反向映射的一些功能,可你可以在那個庫中找到一種方法。

//僅適用於C++不是C作爲你的要求,但仍可能會得到一些想法:

您可以用字典使用地圖

也做到這一點這裏是非常有幫助的鏈接爲: Is there a way to instantiate objects from a string holding their class name?

相關問題