Curso de Programación en C/Prog8

De WikiCabal
Ir a la navegación Ir a la búsqueda

Prog8

 1 /* prog8.c -- Más especificadores de conversión de printf() */
 2 
 3 #include <stdio.h>
 4 
 5 int main( void )
 6 {
 7   unsigned int NoSigno = 3000000000; /* 32-bit int    */
 8   short fin = 200;              /* 16-bit short  */
 9   long grande = 65537;
10   long long MuyGrande = 12345678908642ll;
11 
12   printf( "NoSigno = %u pero no %d\n", NoSigno, NoSigno );
13   printf( "fin = %hd y también %d\n", fin, fin );
14   printf( "grande = %ld pero no %hd\n", grande, grande );
15   printf( "MuyGrande = %lld pero no %ld\n", MuyGrande, MuyGrande );
16 
17   return 0;
18 }

Resultado

[rrc@Pridd CClase]$ gcc -o Prog8 -Wall -O2 Prog8.c 
Prog8.c: In function ‘main’:
Prog8.c:7: warning: this decimal constant is unsigned only in ISO C90
Prog8.c:14: warning: format ‘%hd’ expects type ‘int’, but argument 3 has type ‘long int’
Prog8.c:15: warning: format ‘%ld’ expects type ‘long int’, but argument 3 has type ‘long long int’
[rrc@Pridd CClase]$ ./Prog8
NoSigno = 3000000000 pero no -1294967296
fin = 200 y también 200
grande = 65537 pero no 1
MuyGrande = 12345678908642 pero no 1942899938

Explicación