C - 将变量与sizeof(int)进行比较

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C - 将变量与sizeof(int)进行比较相关的知识,希望对你有一定的参考价值。

所以,最近我看到了一段C代码如下:

int result, input;


result = read(fd, (char*)&input, sizeof(input));

if(result == sizeof(int)) return input;

比较result == sizeof(int)做什么?

答案

read返回读取的字节数(或错误时为-1)。代码试图从流中读取int,并确保read正常工作。

另一答案

read返回读取的字节数。

在某些情况下(文件结束,磁盘错误,管道损坏),read可能返回小于调用中请求的整数的大小,或-1指示错误。

这只是一个健全检查,以确保input的完整性

就个人而言,我更愿意对sizeof(input)进行测试,因为如果inputshortdouble类型发生变化,则代码会错误地检测到读取大小问题。

另一答案

这使它更清楚

int readLength;
int readData; // or long, float, ...

readLength = read(fd, (char*)&readData, sizeof(readData));

if(readLength == sizeof(readData)) // Do something

由于重复使用result,原始代码被破坏了

以上是关于C - 将变量与sizeof(int)进行比较的主要内容,如果未能解决你的问题,请参考以下文章

通过 pymssql 将 int 变量与 MSSQL 查询结果 Python 进行比较

C语言与C++常见面试题

C语言 动态内存分配机制(堆区) int*p=malloc(5*sizeof)

C语言中“SIZEOF(INT)“是啥意思?有啥作用?

走进C语言的世界

走进C语言的世界