3.6.3. 익명 클래스, 구조체 및 공용체

익명 클래스, 구조체 및 공용체는 확장으로 지원됩니다. 익명 구조체 및 공용체는 C와 C++에서 지원됩니다.

익명 공용체는 기본적으로 C++에서 사용할 수 있습니다. 하지만 다음을 사용하려면 anon_unions pragma를 지정해야 합니다.

익명 공용체는 포함 클래스에 typedef 이름으로 추가될 수 있습니다. 진정한 익명 공용체와 달리 직접 선언할 필요가 없습니다. 예를 들면 다음과 같습니다.

typedef union
{
    int i, j;
} U;                 // U identifies a reusable anonymous union.

#pragma anon_unions

class A
{
    U;               // Okay -- references to A::i and A::j are allowed.
};

또한 확장에 따라 C++ 기능이 없는 익명 클래스 및 익명 구조체를 사용할 수 있습니다. 예를 들어 익명 클래스 및 익명 구조체에 정적 데이터 구성원이나 구성원 함수, 비공개 구성원, 중첩된 유형(익명 클래스, 구조체 또는 공용체 제외)은 사용할 수 없습니다. 예를 들면 다음과 같습니다.

#pragma anon_unions

struct A
{
    struct
    {
        int i, j;
    };               // Okay -- references to A::i and A::j are allowed.
};

추가 참고

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0348AK
Non-Confidential