scary
이라는 변수를 정의하는 것이 어떻게 double 형 포인터의 단일 arg를 취하여 short 포인터를 반환하는 함수에 대한 포인터입니까?함수에 대한 포인터
이 정보가 맞습니까? short* (*scary)(double*)
scary
이라는 변수를 정의하는 것이 어떻게 double 형 포인터의 단일 arg를 취하여 short 포인터를 반환하는 함수에 대한 포인터입니까?함수에 대한 포인터
이 정보가 맞습니까? short* (*scary)(double*)
당신은 정말 처음에 "함수 포인터 C"에 대한 검색 좀해야하지만, 난 당신이 이미 공부가 무엇인지 확인으로 질문을 할게요.
는는 예, 맞습니다, 예를 들어 다음을 수행하십시오
short global = 2;
short * ptr_to_global = &global;
short* scary_fun(double* ptr) {
return ptr_to_global;
}
int main(void) {
double val = 22.0;
double *ptr_to_val = &val;
short* (*scary)(double*);
scary = &scary_fun;
printf("%d", *(scary(ptr_to_val))); // Prints "2"
return 0;
}
scary -- scary
*scary -- is a pointer to
(*scary)( ) -- a function on
(*scary)( arg) -- parameter arg
(*scary)( *arg) -- is a pointer to
(*scary)(double *arg) -- type double
*(*scary)(double *arg) -- returning a pointer to
short *(*scary)(double *arg) -- type short
첨자를 []
및 ()
연산자 단항 *
보다 더 높은 우선 순위를 가지고 있습니다 함수를 호출, 그래서 :
T *a[N] -- a is an N-element array of pointer to T
T (*a)[N] -- a is a pointer to an N-element array of T
T *f() -- f is a function retunring pointer to T
T (*f)() -- f is a pointer to a function returning T
테스트 할 수있는 방법이있는 경우 ... –
[예] (http://cdecl.ridiculousfish.com/?q=short*+%28*scary%29%28double*%29) –
전체 I 당신이 이것을해서는 안된다는 말을 스캔하십시오. – ha9u63ar