如何将__float128数据类型写入二进制文件?

时间:2016-01-04 10:29:32

标签: c fwrite quadruple-precision

我正在使用quadmath库来实现四精度。 我可以使用fwrite函数写入二进制文件吗?

struct rec
{ 
   __float128 mydata;
}

struct rec my_record;

mydata=1.41421356237309504880q;
fwrite(&my_record, sizeof(struct rec), 1, myfile);

1 个答案:

答案 0 :(得分:0)

写入文件应该没问题。只要你以同样的方式阅读它(即使用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");
}