我在一個小問題在這裏運行的簽名,我有了這個函數指針:
修改函數指針
typedef void* (* funcPointer)(const void *in, int ilen, void *out, int *olen)
而這個功能
void* foo1(const void *in, int ilen, void *out, int *olen)
{
if(CONST_VALUE_1 > iLen)
//do something
else
//do something else
return whatever;
}
某處在代碼
// ...
funcPointer fpointer = foo1;
if(someArgument > SOME_OTHER_CONSTANT)
// where foo2 is the same as foo1 except that it uses CONST_VALUE_2
fpointer = foo2;
bar(someVariable, anotherVariable, fpointer);
// ...
正如你所看到的,這個函數的主體中有一個CONST_VALUE_X
。我希望能夠刪除常量並改用第五個參數。既然不能修改簽名,我在想,如果有事情做或複製粘貼帶有每可能的常量的功能...
謝謝
您是否可以控制傳入回調函數的任何值? – TurqMage 2011-05-19 17:39:56
你能包住它嗎?爲什麼不創建一個採用第5個參數的基本函數,然後從尊重簽名的函數中調用它傳遞CONST_VALUE_X? – slezica 2011-05-19 17:41:12
@TurqMage不,我沒有任何控制桿功能 – ALOToverflow 2011-05-19 17:43:53