C의 맥락에서 "odr-use"는 컴파일 중에 엔터티 정의를 제공해야 하는 상황을 의미합니다. . 이 용어는 실제 정의가 필요하지 않은 단순한 선언과 구별됩니다.
인터페이스(헤더 파일)를 분리할 수 있으므로 즉각적인 정의를 제공하지 않고 엔터티를 선언하는 기능은 모듈식 프로그래밍에 매우 중요합니다. 구현(소스 파일)에서. 그러나 컴파일 단위 전체에서 일관된 동작을 보장하기 위해 C 표준은 엔터티를 정의해야 하는 경우에 대한 특정 규칙을 정의합니다.
C 표준에 따르면, 다음과 같은 경우 엔터티가 "odr-used"입니다.
클래스 템플릿 컨텍스트에서 멤버 함수는 Odr에 사용되는 경우 인스턴스화됩니다. 즉, 클래스 템플릿이 하나의 컴파일 단위에서 인스턴스화되면 실제로 호출되거나 오버로드 해결의 일부로 사용되는 멤버 함수만 해당 단위에서 인스턴스화됩니다. 다른 멤버 함수는 사용될 때까지 인스턴스화되지 않은 상태로 유지됩니다.
이 동작은 템플릿 멤버의 불필요한 인스턴스화를 방지하는 데 필수적이며, 이를 통해 컴파일 시간을 크게 줄이고 전체 프로그램 효율성을 향상시킬 수 있습니다. 또한 템플릿 디자인의 유연성을 허용하여 사용자가 일반 클래스를 생성하고 특정 요구 사항에 따라 필요한 기능만 인스턴스화할 수 있습니다.
위 내용은 C에서 ODR 사용을 구성하는 것은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!