c++ - etiquetas - meta tags seo
¿Por qué se compararía el carácter ''A'' con 0x41? (2)
A primera vista puede parecer que ese es un código muerto, pero ''A'' == 0x41 no siempre devolverá verdadero.
lo que el desarrollador intentó hacer aquí es encontrar perezosamente qué codificación es la máquina que implementa ASCII o cualquier variante de EBCDIC
como @Richard sugirió que el Capital a se asigna a 0xc1 en el Código internacional de intercambio decimal codificado con código binario extendido, consulte la tabla a continuación en la rama 2 del if if ...
ASCII podría encontrar otro valor diferente para exmaple:
él también podría haber hecho:
if(''p'' == 0x70) {
// ...
} else if(''p'' == 0x97) {
//...
}
Estaba mirando un código C ++ y encontré la siguiente construcción:
if(''A'' == 0x41) {
// ...
} else if(''A'' == 0xc1) {
// ...
} else {
// ...
}
Recibo una advertencia de Visual Studio que dice:
Advertencia La expresión condicional C4127 es constante.
Visual Studio tiene toda la razón: seguramente ''A'' se define como 0x41. ¿Por qué el autor escribe este código, dado que dos de las tres ramas son código muerto?
0xc1
es el código del
EBCDIC
caracteres
EBCDIC
para
A
El autor está probando una máquina de este tipo.