Ответ 1
0xc1
- это код набора символов EBCDIC
для A
. Автор тестирует такую машину.
Я искал некоторый код на С++ и нашел следующую конструкцию:
if('A' == 0x41) {
// ...
} else if('A' == 0xc1) {
// ...
} else {
// ...
}
Я получаю Visual Studio предупреждение:
Предупреждение C4127 условное выражение является постоянным.
Visual Studio явно прав - наверняка "A" определяется как 0x41. Почему автор пишет этот код, учитывая, что два из трех ветвей являются мертвым кодом?
0xc1
- это код набора символов EBCDIC
для A
. Автор тестирует такую машину.
На первый взгляд может показаться, что это мертвый код, но "A" == 0x41 не всегда вернет true.
то, что разработчик пытался сделать здесь, лениво находит, какая кодировка - это машина, реализующая ASCII или любой вариант EBCDIC
поскольку @Richard предположил, что Capital a сопоставляется с 0xc1 в International - Extended Binary Coded Decimal Код обмена см. Таблицу ниже в 2 ветки if if else...
другое выражение можно найти в ASCII для exmaple:
он мог бы сделать:
if('p' == 0x70) {
// ...
} else if('p' == 0x97) {
//...
}