¿Por qué C++ (y probablemente C también) me permiten asignar e int a una char sin al menos darme una advertencia?C++ Asignar un int a un char: ¿por qué funciona esto sin al menos una advertencia?
¿Se puede asignar directamente el valor, al igual que en
int i = 12;
char c = i;
es decir, hacer una conversión implícita, o tendría que utilizar un static_cast<>
?
EDITAR
Por cierto, estoy usando gcc
.
Es probable que reciba una advertencia si aumenta sus niveles de advertencia. –
También estoy de acuerdo en subir los niveles de advertencia es una buena idea. En cualquier caso, si necesita asignar, use static_cast para que quede claro –
seand
En GCC, no recibe una advertencia sobre posibles problemas de conversión de tipo hasta que utilice el indicador '-Wconversion' (' -Wall' doesn ' t advertir esto). En VC++, '/ W4' advertirá sobre la posible pérdida de datos de esta conversión. – birryree