2
인수로 두 번 포인터를 사용하는 함수 포인터를 만들려고합니다. main
에 쓸 올바른 구문은 무엇입니까?포인터 매개 변수를 사용하는 함수의 포인터
이것은 내가 가지고있는 것이지만 오류를 계속 내뱉습니다.
void (*ptr)(double, double, (*double), (*double));
인수로 두 번 포인터를 사용하는 함수 포인터를 만들려고합니다. main
에 쓸 올바른 구문은 무엇입니까?포인터 매개 변수를 사용하는 함수의 포인터
이것은 내가 가지고있는 것이지만 오류를 계속 내뱉습니다.
void (*ptr)(double, double, (*double), (*double));
그것은 당신이 함수의 매개 변수 목록에서 double *
매개 변수를 선언하는 것과 같은 방법입니다
void something (double w, double x, double *py, double *pz) {
}
이 :
void (* ptr) (double, double, double *, double *);
이 같은 기능에 할당 할 수 있습니다 아무리 복잡해도 일반적인 경우에는 사실입니다. 예를 들어, 함수 포인터가 int
다른 함수 포인터 소요 (a double
및 void *
을 취하는 함수를 가리키는 및 char*
를 반환) 파라미터로서 : 다음
void (* ptr) (int, char * (*) (double, void *));
:
char * g (double w, void *) {
...
}
void f (int x, char * (* y) (double, void *)) {
...
}
// usage, elsewhere:
ptr = &f;
ptr(0, &g);
그런데 때로는 'typedef'유형을 구문 적으로 더 단순하게하는 것이 도움이된다는 것을 알게되는 경우가 있습니다. 예를 들어,'typedef double * double_ptr'은'void (* ptr) (double, double, double_ptr, double_ptr)'을 clear 한 다음에 double *을 대체합니다. 'back in은 올바른 구문을 보여줍니다. –