- 主题:off_t 和 size_t 为啥不搞成一样的定义?
offset可以是负数
size只能是自然数(含零的那种自然数)
【 在 hgoldfish 的大作中提到: 】
: 分成两种类型有什么意义吗?
: 更奇葩的是弄 ssize_t 和 size_t 两种类型。
--
FROM 222.71.112.*
我就不能理解为什么还有“带符号的size”
【 在 hgoldfish 的大作中提到: 】
: 为了符号设计出两个特别的类型太奇怪了啊。
: 后面又设计出 ssize_t 表示有符号的 size_t,那就和 off_t 一样了。
: 而且,其实这两个还有 32 位和 64 位的区别。。
--
FROM 222.71.112.*
搜了一下,负数代表error
正数和 无符号size_t一样
感觉就是解决C语言的“无法return tuple”的缺陷而做出来的东西把?
在golang里一般用result, err = func()
python里就throw了
【 在 JulyClyde 的大作中提到: 】
: 标 题: Re: off_t 和 size_t 为啥不搞成一样的定义?
: 发信站: 水木社区 (Fri Sep 23 09:32:22 2022), 站内
:
: 我就不能理解为什么还有“带符号的size”
: 【 在 hgoldfish 的大作中提到: 】
: : 为了符号设计出两个特别的类型太奇怪了啊。
: : 后面又设计出 ssize_t 表示有符号的 size_t,那就和 off_t 一样了。
: : 而且,其实这两个还有 32 位和 64 位的区别。。
:
: --
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 222.71.112.*]
--
修改:JulyClyde FROM 222.71.112.*
FROM 222.71.112.*
现在还有32位的软件啊?
【 在 kirbyzhou 的大作中提到: 】
: 我一直觉得size_t挺烦的,但是有些特殊场景就是没办法。
: 比如32位下超过2G大小的内存块啥的,其实挺现实。
--
FROM 222.71.112.*
无所谓啊,让你用size_t而不是int32就是为了有朝一日它不再是32位了
【 在 kirbyzhou 的大作中提到: 】
: size_t 被定义出来的时候,32位是主流
--
FROM 222.71.112.*
嗯嗯
【 在 kirbyzhou 的大作中提到: 】
: 我要表达的是为什么size_t需要是unsigned。
: 这是因为32位年代需要unsigned才能描述2G~4G的容量,而且这是刚需。
: 然后这事就延续到今天了。
: ...................
--
FROM 222.71.112.*