假設有多個函式指標,這些函式指標是結構體的成員變數。
這些函式指標指向同一個源函式。
當從函式指標呼叫改源函式時,如何從源函式中獲取該函式指標的地址。
具體描述見附圖。
請給出完整思路和代碼。

uj5u.com熱心網友回復:
好像在ebp前面uj5u.com熱心網友回復:
似乎做不到,可以在fn_t,中加個引數test*, typedef int(*fn_t)(test*)或者把他定義成test的成員函式 typedef int(test::*fn_t)()
uj5u.com熱心網友回復:
不對,不是這個。
沒辦法。不知道咋搞。
除非,這個源函式屬于test。則能研究研究使用多型、繼承什么的
否則只有直接或者間接地把指標傳過去
uj5u.com熱心網友回復:
因為這種普通的呼叫,你想回傳具體哪個結構體的資料。不同結構體存在不同的位置。C語言也沒有thiscal,幫助你告訴函式【底層創建傳入this指標】是在操作哪個結構的資料。
-----------------------------
直觀點就是:
你的t1
被存在記憶體:10001~10002
你的t2
被存在記憶體:20001~20002
而函式有且僅有一個了。想公用
想要回傳 i值。那函式也就納悶兒了:你是想要10000那塊兒的那個i呢,還是20000那塊兒的那個i呢?
uj5u.com熱心網友回復:
我今天想了一下,這個思路確實是個思路
uj5u.com熱心網友回復:
假如說現在用C語言實作迭代器,begin不能傳參,是不是和這個問題差不多。uj5u.com熱心網友回復:
老鐵們????uj5u.com熱心網友回復:
迭代器用的太少,不是很懂。ebp前面也是呼叫函式那行代碼的下一行代碼。
然后還要通過指標往上找上一行的call xxxxxx,看看[xxxxxxx]是個啥。
單純C語言除非傳參,否則暫時還沒有什么比較好的想法
uj5u.com熱心網友回復:
然后還要通過指標往上找上一行的call [xxxxxx],看看xxxxxxx是個啥。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/46008.html
標籤:C語言
上一篇:代碼報錯了,求找出問題
