2014-08-29 56 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

相关问题