(Edited change C/C++ to C)
Please help me to find out a clean clarification on char
and unsigned char
in C. Specially when we transfer data between embedded devices and general PCs (The difference between buffer of unsigned char
and plain char
).
The type char is special. It is not an unsigned char or a signed char. These are three distinct types (while int and signed int are the same types). A char might have a signed or unsigned representation.
From 3.9.1 Fundamental types
You're asking about two different languages but, in this respect, the answer is (more or less) the same for both. You really should decide which language you're using though.
Differences:
char
is signed or unsignedSimilarities:
If you're simply using them to transfer raw byte values, with no arithmetic, then there's no practical difference.