#include <stdio.h>

int main(void)
{
int a, b, c;
int x, y, z;
printf("a = %zu\n",sizeof(unsigned short));
printf("b = %zu\n",sizeof(unsigned int));
printf("c = %zu\n",sizeof(unsigned long));

printf("x = %zu\n",sizeof(short));
printf("y = %zu\n",sizeof(int));
printf("z = %zu\n",sizeof(long));
if (a == x)
printf("等しい\n");
else
printf("等しくない\n");
if (b == y)
printf("等しい\n");
else
printf("等しくない\n");
if (c == z)
printf("等しい\n");
else
printf("等しくない\n");

return 0;
}

上記プログラムで実行結果がすべて「等しくない」で出力されるんですが、なぜなのかわかりません。等価演算子の使い方が間違っているのでしょうか?