c++ 的學習 第二集函數的重載2 namemangling

  • 2021 年 9 月 26 日
  • 筆記

1.◼ 本質

採用了name mangling或者叫name decoration

✓ C++編譯器默認會對符號名(比如函數名)進行改編、修飾,有些地方翻譯為「命名傾軋」
✓ 重載時會生成多個不同的函數名,不同編譯器(MSVC、g++)有不同的生成規則
✓ 通過IDA打開【VS_Release_禁止優化】可以看到

 

2.F9 是打開斷點

3.證明c++ 可以根據函數的(參數不同)  而去改函數的名字

:反彙編

游標到第一個調用函數的地方:F9   之後不是ctr+F5     是直接F5就行了   之後右擊就會出現 反彙編

4.

 

 5.

 

 c++與c語言是一樣的,printf  裡面用雙引號

6.

 

 vs 2019 不在顯示機器碼,我圈的也不是機器碼

7.

 

 二進位轉十進位4位一補,不過還是從右到左2的·0 1 2 3次方?????????總結的不對

//jingyan.baidu.com/article/597a0643614568312b5243c0.html  (二轉10)

//jingyan.baidu.com/article/39810a23e3779db636fda6c5.html 

與其說像他說的8位一補,不如說 二轉10 就是不用補,直接不用劃分成幾塊,,直接從右到左2的0123456次方 有多少直接次方遞增就行

還不是二轉8  不是8的0123456次方,而還是2的0123456隻不過8進位是3位一補 ,,,2的012 沒有了不能在遞增其次方了

8.2個16進位位 等於8個二進位的個數  所以  2個16進位位 代表1個位元組

9.

 

 10.

 

 11.

 

 12.

 

 用這個證明???????