Mit diesem kleinem Programm kannst du dir die minimale und maximale Größe von Variablen ausgeben lassen. :-)
#include <stdio.h>
#include <limits.h>
#include <float.h>
int main(void) {
printf("min. char-Wert : %d\n", SCHAR_MIN);
printf("max. char-Wert : +%d\n", SCHAR_MAX);
printf("min. unsigned-char : 0\n");
printf("max. unsigned-char : %u\n\n", UCHAR_MAX);
printf("min. short-Wert : %d\n", SHRT_MIN);
printf("max. short-Wert : +%d\n", SHRT_MAX);
printf("min. unsigned-short : 0\n");
printf("max. unsigned-short : %u\n\n", USHRT_MAX);
printf("min. int-Wert : %d\n", INT_MIN);
printf("max. int-Wert : +%d\n", INT_MAX);
printf("min. unsigned-int : 0\n");
printf("max. unsigned-int : %u\n\n", UINT_MAX);
printf("min. long-Wert : %ld\n", LONG_MIN);
printf("max. long-Wert : +%ld\n", LONG_MAX);
printf("min. unsigned-long : 0\n");
printf("max. unsigned-long : %lu\n\n", ULONG_MAX);
printf("min. long long-Wert : %lld\n", LLONG_MIN);
printf("max. long long-Wert : +%lld\n", LLONG_MAX);
printf("min. unsigned-llong : 0\n");
printf("max. unsigned-llong : %llu\n\n", ULLONG_MAX);
printf("min. float-Wert : %f\n", FLT_MIN);
printf("max. float-Wert : +%f\n", FLT_MAX);
printf("float Genauigkeit : %d\n\n", FLT_DIG);
printf("min. double-Wert : %lf\n", DBL_MIN);
printf("max. double-Wert : +%lf\n", DBL_MAX);
printf("double Genauigkeit : %d\n\n", DBL_DIG);
printf("min. long double : %Lf\n", LDBL_MIN);
printf("max. long double : +%Lf\n", LDBL_MAX);
printf("long double Genu. : %d\n\n", LDBL_DIG);
return 0;
}
Ausgabe:
min. char-Wert : -128
max. char-Wert : +127
min. unsigned-char : 0
max. unsigned-char : 255min. short-Wert : -32768
max. short-Wert : +32767
min. unsigned-short : 0
max. unsigned-short : 65535min. int-Wert : -2147483648
max. int-Wert : +2147483647
min. unsigned-int : 0
max. unsigned-int : 4294967295min. long-Wert : -2147483648
max. long-Wert : +2147483647
min. unsigned-long : 0
max. unsigned-long : 4294967295min. long long-Wert : -9223372036854775808
max. long long-Wert : +9223372036854775807
min. unsigned-llong : 0
max. unsigned-llong : 18446744073709551615min. float-Wert : 0.000000
max. float-Wert : +340282346638528859811704183484516925440.000000
float Genauigkeit : 6min. double-Wert : 0.000000
max. double-Wert : +179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889[…]min. long double : 0.000000
max. long double : +1189731495357231765021263853030970205169063322294624200440323733891737005522970722616410290336528882853545697807495577314427443153670[…]
Wenn du das nächste C-Programm einmal kompiliert hast und es mehrere male nacheinander ausführst siehst du, dass die Variable ggf. an einer anderen Stelle im Speicher abgelegt wurde.
#include <stdio.h>
int main(void) {
int var=0;
printf("Die Adresse von var lautet: %p\n", &var);
return 0;
}