Salut !
> #include <stdio.h>
>
> int main(argc, argv)
> int argc;
> char** argv;
Tiens, tu écris encore le C avec l'accent K&R ?
> {
> char c;
>
> c = -32;
> printf("%ld\n", (long)c);
> return 0;
> }
>
> Les resultats sont les suivant:
>
> AIX(PowerPC): 224
> Linux(PowerPC): 224
> Linux(Intel): -32
>
> Le resultat logique me semble etre -32.
> (Le bit de signe devrait etre etendu de char
> vers long).
>
> Qu'en pensez-vous ?
Qu'il faut écrire « signed char » ou « unsigned char » si on veut faire
des choses comme ça. « Le fait que les variables de type char tout court
soient signées ou non dépend de la machine utilisée », K&R, 2e édition,
p.36 de la version française.
> Qu'en est-il sur d'autres systemes
> (Sparc, SGI, Cray :-) ) ?
Linux(Sparc), SunOS(Sparc) et HP-UX 9(HP) : -32
Tiens, le compilateur C de la HP est comique. J'ai remis le programme en
C ANSI et il me dit :
error 1705: Function prototypes are an ANSI feature.
Faudra lui expliquer ce que le mot « error » veut dire...
Edgar.