Re: question C

Page principale

Répondre à ce message
Auteur: Eric Cheminot
Date:  
À: guilde
Sujet: Re: question C
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