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)
进行测试,因为如果input
或short
的double
类型发生变化,则代码会错误地检测到读取大小问题。
另一答案
这使它更清楚
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 进行比较