2014-08-29 1 views
0

저는 수학 유틸리티 라이브러리에 Secant Method을 구현하는 함수를 작성하고 있습니다. 정말 같은 구문으로 함수를 호출하고 싶습니다전역 함수가 블록 인수를 사용할 수 있습니까?

:

f 블록은 함수가 해결되고 구현
double rootSecantMethod((double (^)(double))f, double x1, double x2, double xtol); 

.

이것은 Objective-C 클래스 외부에있는 "전역 함수"입니다. 이것이 올바른 용어인지 확실하지 않지만 objc 지원으로 컴파일되기 때문에 "C 함수"라고하고 싶지 않습니다.

클래스 외부에있는 함수에 블록 매개 변수를 전달하는 방법이 있습니까? 아니면 컴파일러가이를 지원하지 않습니까?

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

당신이 그것을 시도 해 봤나 : –

+0

컴파일되지 않습니다. 컴파일러는 "expected"라고 불평합니다.) " – bcattle

+0

실제로 함수 포인터 구문과 동일합니다. 단지'*'를'^'로 대체해야합니다. –

답변

3

문제

은 잘못된 장소에서 인수 이름을 배치하고 있다는 점이다? 어떤 문제에 빠졌습니까?
+0

그랬습니다! 감사. 이 항목은 http://goshdarnblocksyntax.com/에있는 다른 항목이어야합니다. – bcattle

+0

완벽을 기하기 위해 함수 인수를 기본값으로 지정하기 위해 double rootSecantMethod (double (^ f) (double x), ...)로 선언 할 수도 있습니다 이름 – bcattle