Ubuntuのgcc9で

size_t i = -100;
printf("%ld\n", i); // -100

と出力されたんですが、なぜsize_tで負数が扱えるんですか?
stddef.hでは

typedef long unsigned int size_t;

になってました
怖いです