various optimisations
This commit is contained in:
18
src/aton_s.🗿
18
src/aton_s.🗿
@ -1,23 +1,19 @@
|
||||
aton_s(str)
|
||||
{
|
||||
local i = 0;
|
||||
local sign = 0;
|
||||
local out = 0;
|
||||
|
||||
loop {
|
||||
if ([str + i] == '-')
|
||||
if ([str] == '-')
|
||||
sign = sign == 0;
|
||||
else if ([str + i] != '+')
|
||||
else if ([str] != '+')
|
||||
break;
|
||||
i++;
|
||||
str++;
|
||||
}
|
||||
loop {
|
||||
if ([str + i] == 0 | isdigit([str + i]) == 0)
|
||||
break;
|
||||
out = out * 10 + [str + i] - '0';
|
||||
i++;
|
||||
if ([str] == 0 | isdigit([str]) == 0)
|
||||
return (sign * (0 - out)) | ((sign == 0) * out);
|
||||
out = out * 10 + [str] - '0';
|
||||
str++;
|
||||
}
|
||||
if (sign)
|
||||
return (0 - out);
|
||||
return out;
|
||||
}
|
||||
|
Reference in New Issue
Block a user