Messages in this thread |  | | From | Sergei Organov <> | Subject | Re: somebody dropped a (warning) bomb | Date | Fri, 16 Feb 2007 14:21:27 +0300 |
| |
Bodo Eggert <7eggert@gmx.de> writes: > Sergei Organov <osv@javad.com> wrote: >> Linus Torvalds <torvalds@linux-foundation.org> writes: [...] > Using signed chars for strings is wrong in most countries on earth. It was > wrong when the first IBM PC came out in 1981, and creating a compiler in > 1987 defaulting to signed char is a sure sign of originating from an > isolated country and knowing nothing about this planet.
Maybe I'm wrong, but wasn't it the case that C had no "signed char" type that time, so "char" had to be abused for the "tiny signed integer"?
> Using signed chars in comparisons is especially wrong, and casting > each char to unsigned before comparing them is likely to be > forgotten.
If we start talking about the C language, my opinion is that it's C problem that it allows numeric comparison of "char" variables at all. If one actually needs to compare alphabetic characters numerically, he should first cast to required integer type.
> Unsigned character strings are useless because there is no such thing > as char(-23), and if these strings weren't casted to signed inside all > IO functions, they wouldn't work correctly.
Didn't you swap "signed" and "unsigned" by mistake in this phrase? Or are you indeed think that using "unsigned char*" for strings is useless?
> Only because many programmers don't compare chars, most programs will > work outside the USA.
Comparison of characters being numeric is not a very good property of the C language.
> I repeat: Thanks to using signed chars, the programs only > work /by/ /accident/! Promoting the use of signed char strings is promoting > bugs and endangering the stability of all our systems. You should stop this > bullshit now, instead of increasing the pile.
Where did you see I promoted using of "singed char strings"?! If you don't like the fact that in C language characters are "char", strings are "char*", and the sign of char is implementation-defined, please argue with the C committee, not with me.
Or use -funsigned-char to get dialect of C that fits your requirements better.
-- Sergei. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |