나는 속도를 내재적으로하는 카이 제곱 프로그램을 걷고 이해하려고 노력하고있다. 이 과정에서 저는 이해할 수없는 코드를 발견했습니다.신비한 C++ 구문
나는 교과서, Google 및 행운이 사이트 검색을 검토해 보았습니다. 문제는 구문에 대해 알지 못해도 관련 검색어를 검색 할 수 없다는 것입니다. 여기
코드의 라인이 이해가 안이다 :float (*chi2_float)(const int, const float*, const float*) = chi2_baseline_float;
을 그리고 여기에 포함 된 기능입니다 :
float chi2_float(const int dim, const float* const x, const float* const y) {
float (*chi2_float)(const int, const float*, const float*) = chi2_baseline_float;
#ifdef __SSE__
chi2_float = chi2_intrinsic_float;
#endif
return chi2_float(dim, x, y);
}
그것은 아마 선언하고 정의하는 것을 나에게 보인다는 함수와 내가 줄을 주석으로 처리하고 다시 컴파일하면 다음과 같이 표시됩니다.
오류 C2659 : '=': 왼쪽 피연산자로 사용 온라인으로 chi2_float = chi2_intrinsic_float;
필요할 경우이 함수가 포함 된 .h 파일을 보낼 수 있지만 매개 변수에서 예상하는대로입니다.
도움을 주시면 감사하겠습니다.
너무 신비스럽지 않습니다. 함수 포인터 일뿐입니다. 당신의 C++ 교과서를 편리하게 얻었습니까? –