Liste des Groupes | Revenir à cl c |
In article <v51d1l$2fklr$1@news.xmission.com>,
Kenny McCormack <gazelle@shell.xmission.com> wrote:Interestingly, I note that strtoul() accepts strings that begin with a sign>
(+ or -). This is odd, since you'd (*) think that a sign (particularly, a
minus) would be a syntax error in parsing for an unsigned value.
There have been some useful responses on this thread, which is Good. Of
course, there have also been the usual crappola-type responses, but one must
learn to take the good with the bad.
>
Anyway, I think the takeaway is that while it is what it is, an argument
can certainly be made that it would have been better for the unsigned
versions of these function to not accept signed input. If I were designing
it, I would have had strtoul("-1") be a syntax error (not a C language
syntax error - but a meta-language syntax error) - or, if not that, then
have it return 1, not 2**N-1. But that's just me.
I appreciate the responses indicating that it was probably done the way it
was for actually both of these reasons:
1) Because it makes it more useful for C compiler writers - who were
seen as the primary audience.
2) Because it means that the two functions are literally the same code.
Both calculate the same bit pattern - the difference is only in the
caller's interpretation of the result.
Les messages affichés proviennent d'usenet.