재귀를 사용하여 해결하지 않았기 때문에 다른 사람들의 솔루션을 살펴 보았습니다.
대부분의 솔루션은 매크로 함수(#define)를 사용합니다.
매크로 및 인라인 함수의 개념이 헷갈려서 찾아봤습니다.
매크로 확장의 경우
함수 내에서 데이터 유형을 지정할 필요가 없으며 유형 검사가 수행되지 않습니다.
하지만
인라인 함수의 경우 인라인 함수는 일반 함수처럼 선언한 후 앞에 인라인을 넣어 정의한다.
처리는 컴파일 단계에서 발생합니다.
컴파일러는 함수를 인라인할지 여부를 결정합니다.
결정 단계가 있으며 제네릭 함수에 대해 수행되는 유형(데이터 유형) 검사는 그대로 적용됩니다.
최신 컴파일러는 때때로 간단한 함수 자체를 인라인합니다.
어쨌든 재귀 함수를 올바르게 사용하는 솔루션을 찾아서 따라 해 보았습니다.
이 솔루션은 더 읽기 쉽고 루프가 없는 깨끗한 재귀 호출 솔루션을 허용합니다.
이건 어렵다(어렵다.