兩個c++編譯器對c++對象模型和虛函數調用方式的實現

寫了個小程序在linux(64位)和windows nt(32位)上測試了一下,

只是感興趣,對工作沒什麼實際價值,呵呵

 

compiler1: g++ 3.4.6

compiler2: vc++ 7.1

 

在兩種平臺下程序都可以“正常”運行,看來兩者都將虛函數表指針放在對象"最前面",

且thiscall調用約定都是將this指針存放在寄存器中(猜測),而不是作爲一個普通參數傳遞。

兩者參數傳遞方式也不同,cout<<s這一調用在compiler1情況下程序出現段錯誤,2則不會,會不會是1對

短參數傳遞作了優化

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章