![](/img/trans.png)
[英]How to turn off position-independent code compilation in Microsoft Visual Studio C/C++ compiler?
[英]Position-independent code and vtable
虛擬函數如何在與位置無關的代碼中實現?
我知道如果我的類有虛函數,編譯器通常會為它生成一個包含所有虛函數地址的vtable,並在我的類的每個對象中存儲一個指向vtable的指針。
現在,如果我的代碼與位置無關,則編譯器無法知道虛函數的地址(或任何函數)。 那它是做什么的?
我想知道真正的編譯器是做什么的(不是理論上可行的); 我最感興趣的是Linux 32位平台,但其他平台也有點有趣。
有兩種選擇:
基本上,vtable無處不在實現為函數指針表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.