【发布时间】:2014-10-07 05:27:37
【问题描述】:
我正在尝试编写一个简单的磁盘访问函数,如下所示,但无法确定合适的;将缓冲区转换为数据类型或逐字节执行一些操作。将来我打算让它对字节序更友好,那么选择什么? 首选的任何明显原因?
#include <pstdint.h>
...
uint16_t file_read_int8(FILE* fp) {
char buffer[2];
fread(buffer,1,2,file);
// this?
return *((uint16_t *)buffer);
// or this?
return buffer[0] | (buffer[1]<<8);
}
【问题讨论】:
-
两者都不会正常工作。而是使用类似 char buffer[3] = {0}' ... return atoi( buffer );