char vs. signed or unsigned char

Discussion in 'C Programming' started by At_sea_with_C, Mar 14, 2007.

  1. 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).
    At_sea_with_C, Mar 14, 2007
    1. Advertisements

  2. 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, (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.

    Florian Weingarten, Mar 14, 2007
    1. Advertisements

  3. At_sea_with_C

    Chris Dollin Guest

    `char` is plain.
    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.
    Chris Dollin, Mar 14, 2007
  4. 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
    Nick Keighley, Mar 14, 2007
  5. 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.
    Malcolm McLean, Mar 14, 2007
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.