C 구조에서 재사용 및 오브젝트 유형

오브젝트 유형은 재사용, 다중 인스턴스화 및 동적 인스턴스화를 지원합니다. 본질적으로, 오브젝트 유형은 추상 데이터 유형(ADT)입니다. 다른 컨텍스트에서 인스턴스화될 수 있는 오브젝트의 템플리트를 지정합니다.

오브젝트 유형은 오브젝트에 대한 스펙 파일에서 자체의 고유 유형 정의를 사용하여 C 구조에 생성됩니다. 유형 정의는 오브젝트를 표시하는 struct에 유형 별명을 도입합니다. 유형 이름은 접미부 없이 오브젝트 유형의 이름으로 구성됩니다. 예를 들어, B 오브젝트 유형에 대해 다음 구조 및 유형 정의가 생성됩니다.

typedef struct B B;
struct B {
   /* data members of B */
};
/* operations of B */

B는 명시적 유형이므로, 다른 오브젝트를 B 관점에서 정의할 수 있습니다. 스펙 파일과 구현 파일 둘 다 오브젝트 유형에 대해 생성됩니다. 작성, 초기화, 정리 및 영구 삭제 오퍼레이션은 모두 다른 유형에 대해 자동으로 생성됩니다.

유형 BB를 소유하는 패키지에 대한 스펙 파일에 선언되지만 메모리는 B 유형의 오브젝트가 인스턴스화될 때까지 B에 대해 할당되지 않습니다.

오브젝트 유형은 시스템 초기화 시 정적으로, 또는 실행 중에 동적으로(기본값: 동적으로) 인스턴스화될 수 있습니다. 따라서 오브젝트 유형의 인스턴스는 시스템과 다른 수명 범위를 보유할 수 있습니다. 자세한 정보는 동적 메모리 할당의 내용을 참조하십시오.


피드백