On 31-Dec-01, 19:42 (CST), Ganesan R <[EMAIL PROTECTED]> wrote: > Another thing that puzzles me since this whole debate started. If you look > at the declaration of ctype.h functions (isalpha family), they take a int as > an argument.
The reason the argument for these is int is a relic of the dark ages, aka K&R C. Before function prototypes, there was no way to pass a real char (or short) to a function: such arguments were promoted to int. (Likewise, float was promoted to double -- thus all the math.h functions taking double args.) I don't know that I agree about needing to pass them unsigned char, though. The char->int conversion should be value preserving. If you pass a negative value, then you are making a domain error, and deserve what you get. Steve