C의 중첩 함수
질문: C의 다른 함수 내에 함수를 정의하는 것이 가능합니까? ?
정답:
최신 C(C 11 이상):
예, 다음을 사용하여 중첩 함수를 만들 수 있습니다. 람다. 람다를 사용하면 해당 범위 내에서 로컬 변수를 캡처할 수 있는 익명 함수를 정의할 수 있습니다.
int main() { auto print_message = [](std::string message) { std::cout << message << "\n"; }; print_message("Hello!"); }
C 98 및 C 03:
C 98 및 C 03에서, 함수 내에서 함수를 직접 정의하는 것은 지원되지 않습니다. 그러나 다음 기술을 사용할 수 있습니다.
int main() { struct X { static void a() {} }; X::a(); }
이를 통해 내부에 함수를 생성할 수 있습니다. 함수에 대한 해결 방법으로 간주되며 코드 이해가 모호해질 수 있으므로 자제해서 사용해야 합니다.
위 내용은 C 함수를 중첩할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!