2014-08-29 58 views
0

我正在寫一個函數實現數學實用程序庫的Secant Method全局函數是否可以使用塊參數?

我真的想調用的函數具有如下語法:

double rootSecantMethod((double (^)(double))f, double x1, double x2, double xtol); 

f塊實現正在解決的功能。

這是一個「全局函數」,因爲它生活在Objective-C類之外。我不確定這是否是正確的術語,但我不想將它稱爲「C函數」,因爲它正在使用objc支持進行編譯。

有沒有辦法將block參數傳遞給一個不在類之外的函數,還是編譯器不支持?

+0

你試過了嗎?你遇到了什麼問題? – 2014-08-29 01:39:06

+0

不會編譯,編譯器會抱怨「預期」)'「。 – bcattle 2014-08-29 01:40:41

+0

它實際上與函數指針語法相同,只需要將'*'替換爲'^' – 2014-08-29 01:48:30

回答

3

的問題是,你在不正確的地方放置參數名:

double rootSecantMethod(double (^f)(double), double x1, double x2, double xtol); 
+0

就行了!謝謝。猜猜這應該是另一個條目http://goshdarnblocksyntax.com/ – bcattle 2014-08-29 01:44:33

+0

爲了完整性,它也可以用'double rootSecantMethod(double(^ f)(double x),...'''聲明給函數參數一個默認值名稱 – bcattle 2014-08-29 05:37:25

相關問題