c语言,printf。2输出结果错误

/* printf2.c--更多printf()的特性*/
#include
int main(void)
{
unsigned int un = 3000000000;/int为32位和short为16位的系统/
short end = 200;
long big = 65537;
long long verybig = 12345678908642;

printf("un = %u and not %d\n", un, un);
printf("end = %hd and %d\n", end, end);
printf("big= %1d and not %hd\n", big, big);
printf("verybig = %11d and not %1d\n", verybig, verybig);


return 0;

}/* printf2.c--更多printf()的特性*/
#include
int main(void)
{
unsigned int un = 3000000000;/int为32位和short为16位的系统/
short end = 200;
long big = 65537;
long long verybig = 12345678908642;

printf("un = %u and not %d\n", un, un);
printf("end = %hd and %d\n", end, end);
printf("big= %1d and not %hd\n", big, big);
printf("verybig = %11d and not %1d\n", verybig, verybig);


return 0;

}
用的visual2022

printf("un = %u and not %d\n", un, un);
printf("end = %hd and not %d\n", end, end);
printf("big = %ld and not %hd\n", big, big);
printf("verybig = %lld and not %ld\n", verybig, verybig);