Re: question C

Page principale

Répondre à ce message
Auteur: Edgar Bonet Orozco
Date:  
À: guilde
Sujet: Re: question C
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.