/************************************************* ***************** int_wrap.c - k4thryn Columbine demostración de las limitaciones sobre los tipos de datos entero. este programa tiene opciones de firmado o sin firmar de argumentos, de manera que las diferencias en el comportamiento puede ser visto. buenas opciones (en compiladores w / 2-un poco corto) son 32767-s 65535-u ************************************************** *****************/ # include <stdio.h> # include <stdlib.h> # include <string.h> nulo uso (char *); int main (int argc, char * argv []) ( sin firmar unsigned_number corto; signed_number corto; if (argc! = 3) ( uso (argv [0]); return 1; ) if (strncmp (argv [1], "-u", 2) == 0) ( printf ( "tamaño en bytes:% d \ narg:% s \ n", sizeof (unsigned_number), argv [2]); sscanf (argv [2], "% hu", & unsigned_number); printf ( "\ nunsigned valor:% hu \ n", unsigned_number); printf ( "valor + 1:% hu \ n", unsigned_number + +); ) else if (strncmp (argv [1], "-s", 2) == 0) ( printf ( "tamaño en bytes:% d \ narg:% s \ n", sizeof (signed_number), argv [2]); sscanf (argv [2], "% hd", & signed_number); printf ( "\ nsigned valor:% hd \ n", signed_number); printf ( "valor + 1:% hd \ n", signed_number + +); ) else ( uso (argv [0]); return 1; ) return 0; ) nulo uso (char * bin) ( fprintf (stderr, "Uso: \ t% s - [su] N \ n", bin); fprintf (stderr, "\-s indica twhere firmado,-u indica sin firmar, y N es un entero \ n retorno;
|
Guardar int_wrap.c

