Dans votre courrier du 22 Dec vous ecrivez :
>Salut a tous,
>
>en ecrivant le petit programme suivant, j'ai
>eu des resultats bizarres:
>
>#include <stdio.h>
>
>int main(argc, argv)
>int argc;
>char** argv;
>{
> 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 ?
Je crois que suivant les architectures et les compilos, le type char est signe
ou non signe. Du coup l'affectation "c = -32" a une semantique plutot floue et
les resultats le refletent....
Conclusion : pour le portage, il faut faire hyper gaffe aux entiers en C !
--
Eric Cheminot
Thesard LSR-SCOP
04 76 82 72 89