首頁(yè)
社區(qū)
課程
招聘
RTTI中typeinfo所看到的繼承關(guān)系準(zhǔn)不準(zhǔn)確?是不是和編譯器相關(guān)?

老師的課程當(dāng)中提到:通過(guò)子類(lèi)的type_info結(jié)構(gòu)體可以得到繼承關(guān)系。
如下圖所示:

 

這里看到的結(jié)構(gòu)就是type_info類(lèi)的布局,翻了一下type_info的定義,文檔上面說(shuō)精確定義隨著編譯器的不同還略有差異,只是規(guī)定必須有幾個(gè)操作,其中一個(gè)就是type_info類(lèi)必須要有name()函數(shù),返回類(lèi)型名字的可打印形式。

 

因此type_info類(lèi)的布局并不一定都是子類(lèi)type名稱(chēng)后面跟上父類(lèi)type名稱(chēng),如上圖表現(xiàn)的那樣。

 

我的問(wèn)題就是:
是不是對(duì)于ndk編譯出來(lái)的so來(lái)說(shuō),type_info的布局都是子類(lèi)type名稱(chēng)后面跟上父類(lèi)type名稱(chēng)?

收藏
1條回答
看雪高研 2021-7-11

rtti不同編譯器有不同的形式,而且有些編譯器還有選項(xiàng)可以去掉rtti。

 

例如:gcc和clang的-fno-rtti

 

https://clang.llvm.org/docs/ClangCommandLineReference.html

回復(fù)
[2021秋季班]《安卓高級(jí)研修班(網(wǎng)課)》月薪三萬(wàn)計(jì)劃
  參與學(xué)習(xí)     143 人
  提問(wèn)次數(shù)     2 個(gè)
[2024]《安卓高級(jí)研修班(網(wǎng)課)》月薪三萬(wàn)計(jì)劃班、掌握調(diào)試、分析還原ollvm、vmp的方法,定制art虛擬機(jī)自動(dòng)化脫殼的方法
我的問(wèn)答 領(lǐng)取收益
0
我的提問(wèn)
0
我的回答
0
學(xué)習(xí)收益