我正在阅读一个源代码文件,但我卡在了以下这一行。
while (isspace (* bp & 0xff))
++ bp;
我知道基本思路是去掉空格。但是我不知道下面这个函数中的0xff
到底是在做什么。
static enum tokens scan (const char * buf)
{
static const char * bp;
if (buf)
bp = buf; /* new input line */
while (isspace (* bp & 0xff))
++ bp;
if (isdigit (* bp & 0xff) || * bp == '.')
{
errno = 0;
token = NUMBER, number = strtod (bp, (char **) & bp);
if (errno == ERANGE)
error ("bad value: %s", strerror (errno));
}
else
token = * bp ? * bp ++ : 0;
return token;
}
bp
的类型是什么? - edmzbp
的定义和内容。 - orlp