Witam
Walczę z problemem prawidłowego wyświetlenia wartości 0 i sizeof(unsigned long).
printf("char max: \t\t%d\t\t\tmin: %d\t\tbajtów: %d\n", CHAR_MAX, CHAR_MIN, sizeof(char));
printf("short max: \t\t%d\t\t\tmin: %d\t\tbajtów: %d\n", SHRT_MAX, SHRT_MIN, sizeof(short));
printf("int max: \t\t%d\t\tmin: %d\tbajtów: %d\n", INT_MAX, INT_MIN, sizeof(int));
printf("long max: \t\t%d\t\tmin: %d\tbajtów: %d\n", LONG_MAX, LONG_MIN, sizeof(long));
printf("unsigned char max: \t%d\t\t\tmin: %d\t\t\tbajtów: %d\n", UCHAR_MAX, 0, sizeof(unsigned char));
printf("unsigned short max: \t%d\t\t\tmin: %d\t\t\tbajtów: %d\n", USHRT_MAX, 0, sizeof(unsigned short));
printf("ŹLE unsigned int max: \t%lld\t\tmin: %d\t\t\tbajtów: %d\n", UINT_MAX, 0, sizeof(unsigned int));
printf("ŹLE unsigned long max: \t%lld\t\tmin: %d\t\t\tbajtów: %d\n", ULONG_MAX, 0, sizeof(unsigned long));
Problem jest z 2 ostatnimi linijkami, jeśli jest tak jak w kodzie to dobrze wyświetla wartości max ale min i ilość bajtów są błędne, jeśli %lld zamienię na %d to dobrze wyświetla min i sizeof ale błędnie max.
Co może być tego przyczyną ?