4.4.3. __attribute__((transparent_union))

transparent_union 유형 특성을 사용하면 __attribute__((transparent_union))__로 정규화된 공용체 데이터 유형인 transparent_union 유형을 지정할 수 있습니다.

함수가 투명한 공용체 유형의 매개변수로 정의되는 경우 공용체에 포함된 임의 유형의 인수를 사용하는 함수를 호출하면 전달된 인수의 유형이 있고 해당 값이 전달된 인수의 값으로 설정된 구성원이 포함된 공용체 개체가 초기화됩니다.

__attribute__((transparent_union))로 정규화된 공용체 데이터 유형의 경우 해당 유형의 모든 함수 매개변수에 투명한 공용체가 적용됩니다.

Note

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

Note

각 함수 매개변수는 해당 __attribute__((transparent_union)) 변수 특성으로 정규화될 수도 있습니다.

예제

typedef union { int i; float f; } U __attribute__((transparent_union));

void foo(U u)
{
    static int s;
    s += u.i;    /* Use the 'int' field */
}void caller(void)
{
    foo(1);        /* u.i is set to 1 */
    foo(1.0f);     /* u.f is set to 1.0f */
}

모드

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

추가 참고

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