我有2個庫。庫A在C中編譯。庫B在C++中編譯,但主要是C代碼。傳遞函數指針不工作
我需要調用庫中的以下功能:
foo* c_func(int64_t (*ptr_to_func)(void));
這個功能做的第一件事是:
if(!ptr_to_func)
return NULL;
的ptr_to_func需要指向庫B中的函數,它是聲明爲:
int64_t bar(void);
我有一個cpp文件,其主函數調用另一個函數n,在那裏我做以下幾點:
foo* f = c_func(bar);
然後我檢查f是否爲空。它是。
我在做什麼錯?
我不明白這個問題。 'foo'是一個類型,而不是一個變量。 'c_func(bar)'的結果是基於'c_func'的;你沒有提供它的定義。它可能工作,但由於某種原因返回NULL。 – 2011-03-01 03:41:19
@Jeremiah推測OP的意思是'f'被選中,而不是'foo'。 – 2011-03-01 03:48:24
@Jim是的,那是我的意圖。對困惑感到抱歉。它已被糾正。 – anio 2011-03-01 03:49:45