다음을 통해 공유


익명 공용 구조체

익명 공용 구조체는 클래스 이름 또는 선언자 목록 없이 선언되는 공용 구조체입니다.

union   {   member-list   }

설명

이러한 공용 구조체 선언에서는 형식이 아닌 개체를 선언합니다. 익명 공용 구조체에 선언된 이름이 같은 범위에 선언된 다른 이름과 충돌해서는 안 됩니다.

C에서 익명 공용 구조체는 태그를 포함할 수 있지만 선언자는 포함할 수 없습니다.

익명 공용 구조체에 선언된 이름은 비멤버 변수처럼 직접 사용됩니다.

익명 공용 구조체에는 공용 구조체 멤버 데이터에 나와 있는 제한 이외에 다음 제한이 추가로 적용됩니다.

  • 파일 범위에서 선언하는 경우 정적으로 선언해야 합니다. 로컬 범위에서 선언하는 경우에는 정적 또는 자동이어야 합니다.

  • 익명 공용 구조체에는 공용 멤버만 포함할 수 있으며 전용 및 보호된 멤버를 포함하면 오류가 생성됩니다.

  • 함수 멤버를 포함할 수 없습니다.

    참고

    단순히 구문에서 클래스 이름 부분을 생략한다고 해서 공용 구조체가 익명 공용 구조체가 되지는 않습니다.공용 구조체가 익명 공용 구조체가 되려면 해당 선언에서 개체를 선언하지 않아야 합니다.

예제

// anonymous_unions.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;
int main() {
   union {
      int d;
      char *f;
   };

   d = 4;
   cout << d << endl;

   f = "inside of union";
   cout << f << endl;
}
  

참고 항목

참조

공용 구조체