gpt4 book ai didi

将 off_t 和 ssize_t 与其他类型进行比较

转载 作者:太空宇宙 更新时间:2023-11-04 01:24:52 24 4
gpt4 key购买 nike

我是 C 的新手,最近遇到了不匹配的数据类型及其内存分配的问题。我正在编写一个非常简单的程序来计算使用 Linux 系统调用读取的文件的异或校验和。

我的问题是:在将 off_tssize_tlong 进行比较时,我是否需要担心不可预测的结果>int?

例如:

long i;
for(i = 0; i < fileStat.st_size; i++)
{
// do stuff
}

还有:

ssize_t i;
for(i = 0; i < fileStat.st_size; i++)
{
// do stuff
}

最佳答案

将具有相同符号但大小不同的类型与另一个进行比较,因为较小的类型扩展到较大的类型。比较不同符号的类型是有问题的,因为如果有符号类型不大于无符号类型并且有符号数是负数,您可能会得到错误的结果。首先确保带符号的数字不是负数是个好主意:

signed_t a;
unsigned_t b;

/* instead of */
if (a < b)
/* ... */

/* use */
if (a < 0 || a < b)
/* ... */

关于将 off_t 和 ssize_t 与其他类型进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33043908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com