В пользовательской библиотеке я увидел реализацию:Почему алфавит разбит на несколько диапазонов в этом коде на C?
inline int is_upper_alpha(char chValue)
{
if (((chValue >= 'A') && (chValue <= 'I')) ||
((chValue >= 'J') && (chValue <= 'R')) ||
((chValue >= 'S') && (chValue <= 'Z')))
return 1;
return 0;
}
ли что Easter egg или какие преимущества против метода стандарт C/C++?
inline int is_upper_alpha(char chValue)
{
return ((chValue >= 'A') && (chValue <= 'Z'));
}
Обратите внимание, что в EBCDIC, диапазон символов для строчных букв идет до диапазона символов для прописных букв, и оба приходят перед цифрами - который прямо противоположен порядку в ASCII основе кодировок (например, серии 8859-x, или Unicode, или CP1252, или ...). –
Примечание: если '«J»-«I'' и '» S «-» R'' оба равны '1', то я ожидаю, что разумный оптимизатор превратить бывший в последнем. –