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

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

 

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

 

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

 

我的問題就是:
是不是對于ndk編譯出來的so來說,type_info的布局都是子類type名稱后面跟上父類type名稱?

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

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

 

例如:gcc和clang的-fno-rtti

 

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

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