hgy*_*bll 76 c++ unsigned signed size-t
在我的代码中,我不使用int或unsigned int.我只使用size_t或ssize_t进行移植.例如:
typedef size_t intc; // (instead of unsigned int)
typedef ssize_t uintc; // (instead of int)
Run Code Online (Sandbox Code Playgroud)
因为strlen,string,vector...全部使用size_t,所以我通常使用size_t.我只会ssize_t在它可能是负面时使用.
但我发现:
无符号整数类型非常适合将存储视为位数组的用途.使用无符号而不是int来再获得一位来表示正整数几乎不是一个好主意.通过声明无符号变量来确保某些值为正的尝试通常会被隐式转换规则所取代.
在"C++编程语言 "一书中.
所以我很困惑.我错了吗?为什么STL不遵守书中的建议?
mad*_*tya 127
ssize_t用于返回值可以是有效大小的函数,也可以用于指示错误的负值.保证能够存储至少在该范围内的值[-1, SSIZE_MAX](SSIZE_MAX取决于系统).
因此,size_t无论何时返回大小(以字节为单位),以及ssize_t何时返回大小(以字节为单位)或(负)错误值,都应该使用.
请参阅:http: //pubs.opengroup.org/onlinepubs/007908775/xsh/systypes.h.html
use*_*267 28
ssize_t不包含在标准中,不可移植.size_t在处理对象大小时应该使用(ptrdiff_t对于指针差异也是如此).
| 归档时间: |
|
| 查看次数: |
93306 次 |
| 最近记录: |