programing

선언문에서 조합을 초기화할 수 있습니까?

iphone6s 2023. 10. 4. 21:01
반응형

선언문에서 조합을 초기화할 수 있습니까?

예를 들어, 우리에게 연합이 있다고 가정해 보겠습니다.

typedef union {
unsigned long U32;
float f;
}U_U32_F;

이 조합형의 변수가 선언되면 초기값을 설정할 수 있는 방법이 있습니까?

U_U32_F u = 0xffffffff;   // Does not work...is there a correct syntax for this?

이니셜라이저 목록 사용:

U_U32_F u = { 0xffffffff };

첫번째 멤버가 아닌 다른 멤버를 설정할 수 있습니다.

U_U32_F u = { .f = 42.0 };

구성원별 조합 초기화는 C99 이전 컴파일러에서는 작동하지 않습니다. 이 컴파일러 중 우울한 숫자가 있습니다.예를 들어 현재의 마이크로소프트 C 컴파일러는 그것을 지원하지 않습니다. (막연하게도 K&R II로 거슬러 올라가는 첫 멤버 초기화도 지원하지 않는 것으로 기억하지만, 틀릴 수도 있습니다.)

해라U_U32_F u = {0xffffffff};

언급URL : https://stackoverflow.com/questions/2148989/can-a-union-be-initialized-in-the-declaration

반응형