size_t
объявляется как unsigned int
, поэтому он не может представлять отрицательное значение.
Таким образом, существует ssize_t
, который является подписанным типом size_t
справа?
Вот моя проблема:
#include <stdio.h>
#include <sys/types.h>
int main(){
size_t a = -25;
ssize_t b = -30;
printf("%zu\n%zu\n", a, b);
return 0;
}
почему я получил:
18446744073709551591
18446744073709551586
как результат?
Я знаю, что с size_t
это может быть возможно, потому что это неподписанный тип, но почему я получил неверный результат и с ssize_t
??