- 主题:off_t 和 size_t 为啥不搞成一样的定义?
分成两种类型有什么意义吗?
更奇葩的是弄 ssize_t 和 size_t 两种类型。
--
修改:hgoldfish FROM 120.33.8.*
FROM 120.33.8.*
offset可以是负数
size只能是自然数(含零的那种自然数)
【 在 hgoldfish 的大作中提到: 】
: 分成两种类型有什么意义吗?
: 更奇葩的是弄 ssize_t 和 size_t 两种类型。
--
FROM 222.71.112.*
附议
【 在 JulyClyde 的大作中提到: 】
: offset可以是负数
: size只能是自然数(含零的那种自然数)
--
FROM 159.226.171.*
为了符号设计出两个特别的类型太奇怪了啊。
后面又设计出 ssize_t 表示有符号的 size_t,那就和 off_t 一样了。
而且,其实这两个还有 32 位和 64 位的区别。。
【 在 JulyClyde 的大作中提到: 】
: offset可以是负数
: size只能是自然数(含零的那种自然数)
--
FROM 120.33.8.*
c++数组下标理论上是可以为负数的;BJ大爷在他的文章里面也提到过标准委员会为了容器的size是unsigned还是signed讨论了一段时间。
--
FROM 223.166.96.*
unsigned做下标和数组大小很恶心,经常需要用index做运算,还得转成int来避免警告,有时候循环里i--还得类型换成int,一不小心忘了换就出错。
【 在 passinger 的大作中提到: 】
: c++数组下标理论上是可以为负数的;BJ大爷在他的文章里面也提到过标准委员会为了容器的size是unsigned还是signed讨论了一段时间。
--
FROM 223.104.39.*
我就不能理解为什么还有“带符号的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.*
我一直觉得size_t挺烦的,但是有些特殊场景就是没办法。
比如32位下超过2G大小的内存块啥的,其实挺现实。
【 在 passinger 的大作中提到: 】
: c++数组下标理论上是可以为负数的;BJ大爷在他的文章里面也提到过标准委员会为了容器的size是unsigned还是signed讨论了一段时间。
--
FROM 116.213.168.*