Questo programma restituisce molte informazione utili sui tipi di variabili (memoria a loro dedicata, valori massimo e minimo assumibili..) . Queste sono contenute nei file limits.h e float.h (inclusi all’inizio del programma) sotto forma di DEFINE. Ecco a voi :
/********************
*
* Il programma restituisce varie informazioni sui tipi di variabile
* (memoria dedicata, valori massimi e minimi assumibili…)
*
* Autore : snoomerz
* (Web: http://snoomerz.netsons.org)
*
* Rilasciato con licenza Creative Commons Attribuzione 2.5 Italia
* (http://creativecommons.org/licenses/by/2.5/it/)
*
*********************/
#include <stdio.h>
#include <limits.h>
#include <float.h>
int main(void){
printf(”\nMEMORIA RISERVATA AI TIPI ***** :\n\n”);
printf(”Char : %hu bytes\n”, sizeof(char));
printf(”Short : %hu bytes\n”, sizeof(short));
printf(”Int : %hu bytes\n”, sizeof(int));
printf(”Long : %hu bytes\n”, sizeof(long));
printf(”Unsigned : %hu bytes\n”, sizeof(unsigned));
printf(”Float : %hu bytes\n”, sizeof(float));
printf(”Double : %hu bytes\n”, sizeof(double));
printf(”Long double : %hu bytes\n\n”, sizeof(long double));
printf(”INFORMAZIONI VARIE SUI TIPI ***** :\n\n”);
printf(”\nTIPO INT —– :\n\n”);
printf(”SHORT INT :\n”);
printf(”Valore min signed short int : %hd\n”, SHRT_MIN);
printf(”Valore max signed short int : %hd\n”, SHRT_MAX);
printf(”Valore max unsigned short int : %hu\n\n”, USHRT_MAX);
printf(”INT :\n”);
printf(”Valore min signed int : %d\n”, INT_MIN);
printf(”Valore max signed int : %d\n”, INT_MAX);
printf(”Valore max unsigned int : %u\n\n”, UINT_MAX);
printf(”LONG INT :\n”);
printf(”Valore min signed long int : %ld\n”, LONG_MIN);
printf(”Valore max signed long int : %ld\n”, LONG_MAX);
printf(”Valore max unsigned long int : %lu\n\n”, ULONG_MAX);
printf(”\nTIPO CHAR —– :\n\n”);
printf(”Numero di bit in char : %hd\n”, CHAR_BIT);
printf(”Valore min signed char : %hd\n”, SCHAR_MIN);
printf(”Valore max signed char : %hd\n”, SCHAR_MAX);
printf(”Valore max unsigned char : %hd\n\n”, UCHAR_MAX);
printf(”\nTIPO FLOATING POINT —– :\n\n”);
printf(”Base rappresentazione b : %hd\n\n”, FLT_RADIX);
printf(”FLOAT :\n”);
printf(”p tipo float : %hd\n”, FLT_MANT_DIG);
printf(”Cifre significative tipo float : %hd\n”, FLT_DIG);
printf(”e min tipo float : %hd\n”, FLT_MIN_EXP);
printf(”n min tipo float : %hd\n”, FLT_MIN_10_EXP);
printf(”e max tipo float : %hd\n”, FLT_MAX_EXP);
printf(”n max tipo float : %hd\n\n”, FLT_MAX_10_EXP);
printf(”DOUBLE :\n”);
printf(”p tipo double : %hd\n”, DBL_MANT_DIG);
printf(”Cifre significativ tipo double : %hd\n”, DBL_DIG);
printf(”e min tipo double : %hd\n”, DBL_MIN_EXP);
printf(”n min tipo double : %hd\n”, DBL_MIN_10_EXP);
printf(”e max tipo double : %hd\n”, DBL_MAX_EXP);
printf(”n max tipo double : %hd\n\n”, DBL_MAX_10_EXP);
printf(”LONG DOUBLE :\n”);
printf(”p tipo long double : %hd\n”, LDBL_MANT_DIG);
printf(”Cifre significative tipo long double : %hd\n”, LDBL_DIG);
printf(”e min tipo long double : %hd\n”, LDBL_MIN_EXP);
printf(”n min tipo long double : %hd\n”, LDBL_MIN_10_EXP);
printf(”e max tipo long double : %hd\n”, LDBL_MAX_EXP);
printf(”n max tipo long double : %hd\n\n”, LDBL_MAX_10_EXP);
return 0;
}