Newsgroup: it.comp.os.linux.development
Titolo: char e unsigned char

Qualcuna sa spiegarmi esattamente la differenza che passa tra char e
unsigned char.
Grazie.
Archi.

 unsigned char.
La stessa differenza che passa tra avere il conto in rosso e l'essere 
sempre in attivo.
unsigned = senza segno.
se non e' specificato, signed quindi con segno
-- 
HappyCactus - Linux User #209744 - LFS User #6046 - >>> SMSPM950 <<<
              YAGF Member Group >>> 
www.google.com
 <<<
Ci sono 10 categorie di persone al mondo: quelle che capiscono
il sistema binario e quelle che non lo capiscono.


In C i char signed possono assumere valori da -128 a 127, gli unsigned da 0
a 255.
Alessandro.

 a 255.
In realta', la natura "signed" o "unsigned" e' dipendente
dall'implementazione. Il tipo "char" puo' essere senza segno, di default, su
alcuni sistemi o viceversa, lo standard non dice nulla a proposito. In ogni
caso, teoricamente non sarebbe neanche lecito determinare dei limiti (0..255
o -128..127), infatti, benche' il char, secondo ISO C occupa *sempre* 1 byte
(ovvero sizeof(char) = 1 su qualunque piattaforma) non e' detto che 1 byte
occupi esattamente 8 bit (lo standard dice "almeno" 8 bit). Tanto per
chiarire ;)
--------------------------------
Inviato via 
http://usenet.libero.it

 se non e' specificato, signed quindi con segno
Come gia' detto, non e' assicurato.
Non e', cioe', assicurato che, *sempre*, un semplice "char" sia "signed".


test wrote:

Per l'esattezza l'unsigned char puo' valere da 0 a (2^CHAR_BIT)-1, con 
CHAR_BIT definito in limits.h (assieme a costanti che indicano il massimo e 
il minimo valore per un char signed o unsigned).
Quelli che riporti tu sono comunque i minimi garantiti dallo standard.
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."


(da "man gcc")
-funsigned-char
           Let the type "char" be unsigned, like "unsigned char".
           Each kind of machine has a default for what "char" should be.  It is either like "unsigned char" by
           default or like "signed char" by default.
           Ideally, a portable program should always use "signed char" or "unsigned char" when it depends on the
           signedness of an object.  But many programs have been written to use plain "char" and expect it to be
           signed, or expect it to be unsigned, depending on the machines they were written for.  This option, and
           its inverse, let you make such a program work with the opposite default.
           The type "char" is always a distinct type from each of "signed char" or "unsigned char", even though its
           behavior is always just like one of those two.
Ergo, non e` detto che "char" equivalga a "signed char" per ogni macchina, anzi
e` vero il contrario (ovvero che "char" NON equivalga a "signed char" - e non,
erroneamente, che equivalga a "unsigned char").
Adieu,
-- 
Lestat de Lioncourt                               |          Ciro Mattia Gonano
  JabberID: 
les...@jabber.students.cs.unibo.it
    |    Undergraduate Student in
  ICQ#: 52631406                                  |         Computer Science at
  URL: 
http://www.CS.UniBO.It/~gonano
             |       University of Bologna
            <powered by Linux Slackware 9.0-beta on Kernel 2.4.19-xfs>

occupi esattamente 8 bit (lo standard dice "almeno" 8 bit).
Gulp!-)
Alessandro.