相关疑难解决方法(0)

C size_t和ssize_t负值

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;
}
Run Code Online (Sandbox Code Playgroud)

为什么我得到:

18446744073709551591
18446744073709551586
Run Code Online (Sandbox Code Playgroud)

结果?
我知道size_t这可能是因为它是一个无符号类型,但为什么我得到了错误的结果ssize_t

c size-t

11
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×1

size-t ×1