[問題] 函式指標的位址

看板C_and_CPP作者 (耗呆小綿羊)時間16年前 (2010/02/09 15:52), 編輯推噓5(507)
留言12則, 4人參與, 最新討論串1/2 (看更多)
我有一個函式指標的問題。 函式指標指向一個函式, 指標所指的位址為何會與函式本體的位址不一樣? IDE:Visual Studio VC++ 程式截圖如下所示…… 圖片在此:http://0rz.tw/xQ7Jm -- 耗呆小綿羊~ ~~~個人網頁:http://tw.myblog.yahoo.com/mjshya/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.121.0.85

02/09 16:56, , 1F
右鍵-移至反組譯碼,總之是p()不能直接跳到那麼遠
02/09 16:56, 1F

02/09 16:57, , 2F
先跳到一個中間,接著再跳去func(),所以看到中間的位址
02/09 16:57, 2F

02/09 17:11, , 3F
小弟也Disasm過, 但是看起來第一個位址有一堆的function
02/09 17:11, 3F

02/09 17:12, , 4F
前後段全是jmp; 另外就算是直接call func(), 也是會先跳
02/09 17:12, 4F

02/09 17:12, , 5F
到那個像table的地方(不是直接進func watch到的那個位址
02/09 17:12, 5F

02/09 17:13, , 6F
說); 晚點有空再來查查jmp的range可以到前後多少好了Orz
02/09 17:13, 6F

02/09 17:22, , 7F
它是不是像「間接定址」,間接指向函式本體?
02/09 17:22, 7F

02/09 17:33, , 8F
cout印一樣 為啥add watch就不一樣@@
02/09 17:33, 8F

02/09 18:19, , 9F
對喔~列印出來是相同的,但是監看視窗顯示卻不一樣!
02/09 18:19, 9F

02/09 19:27, , 10F
補一下, watch的是func真正的起點, print ptr出來的都是
02/09 19:27, 10F

02/09 19:28, , 11F
中間轉跳的位址, 不管是watch p或func....
02/09 19:28, 11F

02/09 22:10, , 12F
不管是print p或func才對, typo....orz
02/09 22:10, 12F
文章代碼(AID): #1BSHGY_v (C_and_CPP)
文章代碼(AID): #1BSHGY_v (C_and_CPP)