In una libreria personalizzata vidi un'implementazione:Perché l'alfabeto è diviso in più intervalli in questo codice 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;
}
è che un Easter egg o quali sono i vantaggi vs metodo standard C/C++?
inline int is_upper_alpha(char chValue)
{
return ((chValue >= 'A') && (chValue <= 'Z'));
}
Nota che in EBCDIC, l'intervallo di caratteri per lettere minuscole viene prima dell'intervallo di caratteri per lettere maiuscole, ed entrambi precedono le cifre, che è esattamente l'opposto dell'ordine in codifiche basate su ASCII (come la serie 8859-x, o Unicode, o CP1252, o ...). –
Nota: se ''J' - 'I'' e'' S '-' R'' sono entrambi '1', allora mi aspetto che un ragionevole ottimizzatore trasformi il primo in quest'ultimo. –