Я столкнулся с кодом, в котором enum
переменная отлита до enum
. Я не могу понять, что такое литье. Для Е. g.Переменная переливания для перечисления типа перечисления
typedef enum{x,y,z} en;
void main(){
en const v;
switch(v){
case (en)y : {
}
break;
case (en)x: {
}
break;
default : {
foo();
}
break;
}
}
Что такое использование литья x
или y
к enum
типа, который в случае этикетки (en)x
?
Я предлагаю не делать этого, поскольку это может фактически * скрыть * ошибки, которые в противном случае были бы найдены (с высокими предупреждениями компилятора). –
Какую ошибку это может скрыть? Не могли бы вы объяснить? –