在一个自定义库中,我看到了一个实现:
inline int is_upper_alpha(char chValue)
{
if (((chValue >= 'A') && (chValue <= 'I')) ||
((chValue >= 'J') && (chValue <= 'R')) ||
((chValue >= 'S') && (chValue <= 'Z')))
return 1;
return 0;
}
是复活节彩蛋,还是与标准C / C ++方法相比有什么优势?
inline int is_upper_alpha(char chValue)
{
return ((chValue >= 'A') && (chValue <= 'Z'));
}
请注意,在EBCDIC中,小写字母的字符范围在大写字母的字符范围之前,并且都在数字之前。这与基于ASCII的编码(例如8859- x系列,或Unicode,或CP1252,或…)。
—
乔纳森·勒夫勒
注意:如果
—
Matthieu M.
'J' - 'I'
和'S' - 'R'
都相等1
,那么我希望一个合理的优化器可以将前者变成后者。