From The C Programming Language (Brian W. Kernighan), 2.7 TYPE CONVERSIONS, pg 43 :
"There is one subtle point about the conversion of characters to integers. ... On some macines a char whose leftmost bit is 1 will be converted to a negative integer. On others, ... is always positive. For portability, specify signed or unsigned if non-character data is to be stored in char variables."
My questions are:
Why would anyone want to store non-char data in char? (an example where this is necessary will be real nice)
Why does integer value of char change when it is converted to int?
Can you elaborate more on this portability issue?