我正在使用 quadmath 库进行四精度。我可以使用 fwrite 函数写入二进制文件吗?
struct rec
{
__float128 mydata;
}
struct rec my_record;
mydata=1.41421356237309504880q;
fwrite(&my_record, sizeof(struct rec), 1, myfile);
我正在使用 quadmath 库进行四精度。我可以使用 fwrite 函数写入二进制文件吗?
struct rec
{
__float128 mydata;
}
struct rec my_record;
mydata=1.41421356237309504880q;
fwrite(&my_record, sizeof(struct rec), 1, myfile);
写入文件应该没有问题。只要您以相同的方式(即使用fread
)读回它并且文件没有在机器之间复制,您应该没问题。
您也不需要将值封装在结构中来执行此操作:
__float128 mydata;
int rval;
mydata=1.41421356237309504880q;
rval = fwrite(&mydata, sizeof(mydata), 1, myfile);
if (rval < 1) {
perror("failed to write record");
}
...
rval = fread(&mydata, sizeof(mydata), 1, myfile);
if (rval < 1) {
perror("failed to read record");
}