2012-10-05 2 views
5
union u{ 
char ch[41]; 
int b[10]; 
}un; 
LLVM이

연합 유형은 LLVM에서 파생되는 방법

%union.u = type { [10 x i32], [4 x i8] } 

로 컴파일

union un{ 
    struct s{ 
    int a; 
    float f; 
    double d; 
    }st; 

    int intArr[10]; 
}uno; 

%union.un = type { %struct.s, [24 x i8] } 
%struct.s = type { i32, float, double } 

로 컴파일 어느 한 어떻게 설명 할 수 유니온 타입이 파생됩니까?

답변

4

첫 번째 멤버는 유니온에서 가장 정렬 된 멤버입니다 (여러 멤버가있는 경우 임의로 하나를 선택 함). i8 배열을 추가하여 올바른 크기로 만듭니다.

+0

가장 정렬 된 회원은 무엇을 말합니까? 정렬 된 숫자 값이 더 많거나 더 큰 회원을 의미합니까? 다음의 경우, 조합 double 또는 int 배열의 가장 정렬 된 멤버가되어야합니다. 유니온 def { \t int x [2] [2]; \t double d; }; –