4.5.7. __attribute__((transparent_union))

공용체인 함수 매개변수에 첨부되는 transparent_union 변수 특성은 해당 인수가 모든 공용체 구성원의 유형을 가질 수 있다는 것을 의미하지만, 이 인수는 그 유형이 첫 번째 공용체 구성원의 유형인 것처럼 전달됩니다.

Note

C 사양에서는 공용체가 하나의 유형으로 작성될 때 값이 반환되고 다른 유형을 사용하여 다시 읽혀진 값은 정의되지 않는다고 지정합니다. 따라서 transparent_union이 어떤 유형으로 작성되는지 구분하는 방법도 인수로 전달되어야 합니다.

Note

이 변수 특성은 ARM 컴파일러에서 지원하는 GNU 컴파일러 확장입니다.

Note

공용체 데이터 유형에 대해 typedef에서 이 특성을 사용할 수도 있습니다. 이 경우 이 특성은 해당 유형을 가진 모든 함수 매개변수에 적용됩니다.

모드

GNU 모드에서만 지원됩니다.

예제

typedef union
{
    int myint;
    float myfloat;
} transparent_union_t;

void Variable_Attributes_transparent_union_0(transparent_union_t aUnion __attribute__ ((transparent_union)))
{
    static int aStatic;
    aStatic +=aUnion.myint;
}

void Variable_Attributes_transparent_union_1()
{
    int aLocal =0;
    float bLocal =0;
    Variable_Attributes_transparent_union_0(aLocal);
    Variable_Attributes_transparent_union_0(bLocal);
}

추가 참고

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