복잡한 함수나 변수 정의 해석 암호
복잡한 코드를 재정의하다
int (*(*pf())())() {
return nullptr;
}
이 코드는 매우 복잡하니, 우선 알아야 한다. 여기에 도대체 무엇을 정의했니?함수 Or 변수
뒤의 {}와 되돌아오는 값을 보면 이것은 함수 정의이고 되돌아오는 값은 지침(nllptr)이다
함수 정의 세 가지 요소: 1 반환값, 2 함수명, 3 매개 변수 목록
반환값의 형식: 함수 이름과 매개 변수 목록을 제거하면 나머지는 반환값 형식입니다.
int(*(*pf()())())(), 이것은 몇 층 함수로 정의된 끼워넣기입니까?
작은 기교: 함수 정의의 세 가지 요소 중 3에 따라 함수 이름 다음에 매개 변수와 목록을 만들어야 한다. 그러면 몇 개의 직접 배합된 () 쌍이 있는데 그것이 바로 몇 층의 함수의 정의이다.여기에 직접 짝을 짓는 것은 노란색으로 표시된 세 쌍의 괄호이기 때문에 3층 함수 정의가 있다.
해석 방향:
1), int(*(*pf()()(), 의 반환 유형은 int(*(*)())()입니다.
typdef int(*(*T2)()()로 함수pf의 반환값 유형을 나타냅니다.
T2 pf() <=> int (*(*pf() ) ()) ()
2), Type T2, typdef int(*(*T2)()(), 또는 너무 복잡해서 간소화 필요
여기 T2가 뭐예요?T2는 *fun()과 같은 지향형의 함수 바늘로 (*T2)이 함수 이름이다.
int(*(*T2)()(), 함수명(*T2)과 매개 변수 목록()을 제거하고 나머지는 반환값 형식입니다
int (*) () .
유형 typedef int 정의(*T3)();//이거는 그냥 읽을 수 있어요.
그러면
typdef int (*(*T2) ()) () <=> typedef T3 (*T2) ()
3), 결합 1, 2단계,
typedef int (*T3) () ;
typedef T3 (*T2) () ;
T2 pf();
4) 3단계에서 얻은 결과를 되돌려준다
방법:typedef의 유형명, 함수명 및 매개 변수 목록을 순서대로 바꿉니다
다음과 같은 정의가 있습니다.
typedef int (*T3) () ;
typedef T3 (*T2) () ;
T2 pf();
물음: 함수pf의 최종 정의는 무엇입니까?
T2 pf (), T3 (*T2) () 의 T2를 pf () 로 바꾸면
T3 (* pf()) ();
함수 T3(*pf ()()의 함수 이름과 매개변수 목록은 각각 (*pf ()) 및 ()로 (*pf ())()로 바꿉니다.
int(*T3)()의 T3 가져오기
int(*(*pf()())(), 이것이 최종 정의입니다. 완전히 복원되었습니다.
T2 pf() <=> T3 (* pf()) () <=> int (* (* pf()) () ) ()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.