PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Signed or Unsigned



Arexx-Henk
08.02.2006, 12:47
Hallo,

Ich dachte immer eine variabele deklariert wie 'int' heisst 'signed int'.
Und so sollte auch 'char' meinen: 'signed char'.

Meine Funktion:

vMeinFunction ( char a ) {
if ( a < -62 ) {
//mach etwas
}

Der compiler gibt eine Warnung:

comparison is always false due to limited range of data type.

Wenn definiert wie 'signed char a' dann gibt es keine Warnung.

Wie oder Was stimmt hier nicht?

Gruss,

Henk

xanadu
08.02.2006, 12:55
char ist unsigned, wenn nicht explizit signed angegeben ist.

Gruß,
Chris

Arexx-Henk
10.02.2006, 15:52
I see,

thanks

Henk

SprinterSB
13.02.2006, 12:43
char ist signed:



#define DEFAULT_SIGNED_CHAR 1
/* An expression whose value is 1 or 0, according to whether the type
`char' should be signed or unsigned by default. The user can
always override this default with the options `-fsigned-char' and
`-funsigned-char'. */

Teilweise setzen (automatisch generierte) Makefiles jedoch den Schalten -funsigned-char

xanadu
13.02.2006, 16:05
Ups......

Hab ich wieder was gelernt: Ich nehm' alles zurück und behaupte das Gegenteil.

Gruß,
Chris