野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13003|回复: 7

fats

[复制链接]
发表于 2017-7-9 21:35:42 | 显示全部楼层 |阅读模式
     在利用文件系统对sdio写数据的时候,如果我要写的是double类型数组(比如double a[10]),调用fwrite函数,给地址a,给大小sizeof(a),这样对吗?

    因为在这样的操作过程中,我读出来的数据和写进去的不一样,我感到很疑惑。

   注:我向文件系统里写和读是调用的一个函数,函数参数有是一个BYTE类型的指针,这个参数是所要写数组的地址,就是a,我把它强制转换成byte类型指针(不转换程序报错。说BYTE和doublel类型不一致),不知道这个会不会有影响。

   希望大神们可以讲解清楚一点。谢谢
回复

使用道具 举报

发表于 2017-7-10 09:05:45 | 显示全部楼层
读出来的数据要强制转换成使用double的指针来读取
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-10 10:50:06 | 显示全部楼层
相津童 发表于 2017-7-10 09:05
读出来的数据要强制转换成使用double的指针来读取

读出来的数据是读取在一个char类型的数组中,然后用sprintf函数将数据copy到double类型数组中,因为sprintf函数定义的是char类型指针,所以我将double类型数组地址强制转换为char类型指针,为什么这样就成功了呢?
它的强制转换char型指针对数据的存取没有影响吗?
回复 支持 反对

使用道具 举报

发表于 2017-7-10 11:55:52 | 显示全部楼层
1608302426 发表于 2017-7-10 10:50
读出来的数据是读取在一个char类型的数组中,然后用sprintf函数将数据copy到double类型数组中,因为sprin ...

强制转换的是指针类型,指针类型本质都是地址

回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-10 15:09:12 | 显示全部楼层
相津童 发表于 2017-7-10 11:55
强制转换的是指针类型,指针类型本质都是地址

哦哦,好像有点懂了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-10 15:11:11 | 显示全部楼层
1608302426 发表于 2017-7-10 15:09
哦哦,好像有点懂了

那么这样的话,为什么读出来需要强制转换呢?将一个char类型的数组地址给它不就可以了吗?不是都代表一个地址
回复 支持 反对

使用道具 举报

发表于 2019-8-16 13:46:30 | 显示全部楼层
解决了吗兄弟
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-5 09:18:32 | 显示全部楼层

如上述所说,不管char还是double都是地址,只不过截取的数据字节数不同
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-5 21:54 , Processed in 0.034355 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表