char vs. signed or unsigned char

A

At_sea_with_C

hello all,

Is there a reason to prefer char over signed or unsigned char. From waht I
know all strings can be coded with unsigned char while a negative number
can be put in signed char. So what are the uses for plain char?

Thanks to all who ansered my last post (enum).
 
F

Florian Weingarten

At_sea_with_C said:
Is there a reason to prefer char over signed or unsigned char. From waht I
know all strings can be coded with unsigned char while a negative number
can be put in signed char. So what are the uses for plain char?

As far as I know, there is no "plain char". A char is either a unsigned
char or a signed char, which exactly is implementation depenedent:

ISO/IEC 9899:1999, 6.2.5.15 (p. 49)
The three types char, signed char, and unsigned char are collectively called
the character types. The implementation shall define char to have the same range,
representation, and behavior as either signed char or unsigned char.


HTH,
Flo
 
C

Chris Dollin

Florian said:
As far as I know, there is no "plain char".

`char` is plain.
A char is either a unsigned char or a signed char, which exactly
is implementation depenedent:

ISO/IEC 9899:1999, 6.2.5.15 (p. 49)
The three types char, signed char, and unsigned char are collectively called
the character types. The implementation shall define char to have the same range,
representation, and behavior as either signed char or unsigned char.

No: it has the same range, representation, and behaviour as one of
those types, but it's a different type.

I'd expect the implementation to pick whichever one was "more
efficient" by some reasonable measure - eg when converting to
`int`, one probably wants an efficient code sequence, so one
picks whatever the machine conversion is (PDP11 MOVB, for example)
and takes the consequences.
 
N

Nick Keighley

At_sea_with_C said:
Is there a reason to prefer char over signed or unsigned char. From waht I
know all strings can be coded with unsigned char while a negative number
can be put in signed char. So what are the uses for plain char?

use char for character data (supported by the implementation)

use unsigned char for raw data, eg. data transmitted over a comms link

I've never used signed char, I suppose you'd use it for small signed
integers
 
M

Malcolm McLean

Nick Keighley said:
I've never used signed char, I suppose you'd use it for small signed
integers
One use is for normals in runtime graphics.
Three numbers in the range -128 to 127 give you enough resolution to do
visually acceptable lighting, but don't take up too much space, and you can
use fast integer arithmetic.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top