C에서 열거형 정방향 선언
C에서 열거형(enums)은 명명된 상수 집합을 나타내는 데 사용되는 강력한 기능입니다. 그러나 프로그래머가 열거형을 전달하려고 시도할 때 문제가 발생하는 경우가 있었습니다.
전향 선언이란 무엇입니까?
전향 선언은 컴파일러에 다음 사항을 알리는 역할을 합니다. 특정 정의를 제공하지 않고 유형이나 함수의 존재. 이를 통해 완전한 정의를 아직 사용할 수 없더라도 컴파일러는 컴파일 중에 유형 종속성을 해결할 수 있습니다.
이전에 열거형을 전달할 수 없었던 이유는 무엇입니까?
이전 C 11에서는 열거형 크기가 내용에 따라 다르기 때문에 열거형의 전방 선언이 허용되지 않았습니다. 열거형의 크기는 포함된 열거자 수에 따라 결정되며 이 정보는 전방 선언 중에 쉽게 사용할 수 없습니다.
C 11 이상에서 열거형 전방 선언
C 11이 도입되면서 열거형의 크기를 명시적으로 지정하여 열거형을 전방으로 선언하는 것이 가능해졌습니다. 이를 통해 컴파일러는 정확한 내용을 알지 못해도 충분한 메모리를 할당할 수 있습니다. 다음 구문이 사용됩니다.
enum class EnumName; // C++11 syntax enum EnumName : underlying_type; // C++11 syntax, specify the underlying type
앞으로 선언하는 열거형의 이점
앞으로 선언하는 열거형은 여러 가지 장점을 제공합니다.
열거형 정방향 선언의 예
다음 예를 고려하세요.
class MyClass { private: enum class E; // Forward declare an enumeration void Foo(E e); // Declare a function that takes an argument of type E }; // **Implementation file** enum class MyClass::E { A, B, C };
이 예에서 열거형 E MyClass 클래스 내에서 앞으로 선언됩니다. E 유형의 인수를 취하는 Foo 함수도 선언되었습니다. 열거형의 실제 정의는 구현 파일에 제공됩니다. 이를 통해 Foo 메소드는 해당 값을 공개적으로 노출하지 않고도 E 열거형을 참조할 수 있습니다.
결론
C에서 열거형을 정방향 선언하면 유연성이 부여되고 코드 구성이 향상됩니다. 열거형 크기를 명시적으로 지정하면 컴파일러 오류를 방지하고 구현 세부 사항이 원치 않는 노출로부터 보호되는 전방 선언을 생성할 수 있습니다.
위 내용은 C 열거형을 앞으로 선언할 수 있으며 어떻게?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!