2016-12-01 5 views
3

이것은 Google에서 쉽게 원했지만 대답을 찾지 못한 기본적인 질문입니다.열거 형/열거 형으로의 암시 적 변환

이의 내가 열거를해야한다고 가정 해 봅시다 :

enum abc { a, b, c }; 

지원 암시 적 변환은 무엇입니까? 컴파일러 확장 또는 컴파일러 간의 다른 동작이 있습니까?

enum abc test = (** which type can appear here? **); 

뿐만 아니라 암시 적 변환 열거에서 :

(** which type can appear here? **) test2 = test; 

내가 모두 C에 대한 답을 알고 싶습니다 내가 열거에 암시 적 변환에 대해 부탁 해요

C++. 참고로

+2

에 암시 적으로-전환이, 그것은 흥미 롭습니다. 하지만 당신은 * 어떤 타입이 여기에 나타날 수 있다는 것을 알고 있습니까? *는'int'입니다, 맞습니까? –

+0

@iharob 항상 그렇습니까? http://ideone.com/5WvR9K ... 그 이유는 내가 묻고있어 – Paul

+0

@iharob'short' 또는'signed char' 또는'1e2'와 같은 범위의'_Bool' 또는'double' 값을 사용할 수 없습니까? – chux

답변

2

는 말한다 : 범위가 지정되지 않은 열거 형의

값은 당신은 당신의 질문은보다 구체적인해야 정수형

Reference link

+2

이것은 적어도 참조는 C++ 전용입니다. 대답은 아마도 두 가지 모두에 적용될 수 있습니다. 특히 참조가 그렇게 말하는 경우. –

+1

C의 경우 : "각 열거 형은 char, asigned 정수 유형 또는 부호없는 정수 유형과 호환 가능해야합니다. 유형 선택은 구현 정의, 110)이지만 모든 구성원의 값을 나타낼 수있는 이어야합니다 열거 형의 " –

+0

반대는 사실이 아니지만 명시 적 캐스트를 추가해야합니다. – ubik