OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8485|回复: 8

u8* pBuffer问题,求大神解答啊

[复制链接]

35

主题

193

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
476
金钱
476
注册时间
2015-12-27
在线时间
116 小时
发表于 2016-1-27 10:04:06 | 显示全部楼层 |阅读模式
1金钱
3.png
求解释下,这里面,入口参数,为什么要写成u8* pBuffer?有什么作用吗?我知道这句话是应该是将pbuffer转化为u8*类型的指针的吧?对吗?

在这个函数内部pBuffer表示什么啊?指针的数组?这块不太能理解啊!!
pBuffer,这个是表示这第i个指针的内容吗?还是表示第i个指针啊?

最佳答案

查看完整内容[请看2#楼]

u8 *pBuffer 是定义了一个指向内存存储区的指针,访问数据的类型为u8(无符号单字节) C语言中,经常会把指针和数组混用,因为实质是一样的,都是对一块连续内存区域的访问 *(pBuffer+i) 和 pBuffer都指向同一个字节
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

91

帖子

0

精华

高级会员

Rank: 4

积分
767
金钱
767
注册时间
2014-11-15
在线时间
91 小时
发表于 2016-1-27 10:04:07 | 显示全部楼层
u8 *pBuffer 是定义了一个指向内存存储区的指针,访问数据的类型为u8(无符号单字节)

C语言中,经常会把指针和数组混用,因为实质是一样的,都是对一块连续内存区域的访问
*(pBuffer+i) 和 pBuffer[i]都指向同一个字节
回复

使用道具 举报

2

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2016-1-13
在线时间
42 小时
发表于 2016-1-27 10:34:13 | 显示全部楼层
pBuffer就是一个地址, 写成u8* 只是想用8字节访问
回复

使用道具 举报

14

主题

1592

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2622
金钱
2622
注册时间
2014-7-17
在线时间
350 小时
发表于 2016-1-27 10:45:06 | 显示全部楼层
不是8字节访问是8位一个字节访问
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2016-1-27 10:49:31 | 显示全部楼层
就是字符数组。首地址是pbuffer。
相当于把数据拿出来放到首地址是pbuffer的这个字符数组里
你去看看数组那一块。
小小蜗牛
回复

使用道具 举报

37

主题

88

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2111
金钱
2111
注册时间
2015-1-29
在线时间
123 小时
发表于 2016-1-27 12:30:23 | 显示全部楼层
8BIT一个字节的数组。
回复

使用道具 举报

6

主题

115

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1027
金钱
1027
注册时间
2015-6-1
在线时间
126 小时
发表于 2016-1-27 13:51:01 | 显示全部楼层
没有第i个指针这个说法,这里的指针只有一个pbuffer(无符号字符型,unsigned char),指向首地址,pbuffer【i】指的是指针的偏移量。
跟数组的使用方式类似,所以,指针和数组在一定程度上可以混用。*(pBuffer+i) 基本等效于 pBuffer[i],因为地址相同。
回复

使用道具 举报

35

主题

193

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
476
金钱
476
注册时间
2015-12-27
在线时间
116 小时
 楼主| 发表于 2016-1-27 20:06:02 | 显示全部楼层
Bula 发表于 2016-1-27 10:04
u8 *pBuffer 是定义了一个指向内存存储区的指针,访问数据的类型为u8(无符号单字节)

C语言中,经常会把 ...

这个函数在调用的时候是这么写的
W25QXX_Read((u8*)TEXT_Buffer,FLASH_SIZE,20)、
那是不是意味着,这里的(u8*)TEXT_Buffer就是u8*类型的地址指针?而(u8*)TEXT_Buffer
实际上就是TEXT_Buffer[数组的第i个内容,对吗?
回复

使用道具 举报

35

主题

193

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
476
金钱
476
注册时间
2015-12-27
在线时间
116 小时
 楼主| 发表于 2016-1-27 20:08:51 | 显示全部楼层
Watmin 发表于 2016-1-27 13:51
没有第i个指针这个说法,这里的指针只有一个pbuffer(无符号字符型,unsigned char),指向首地址,pbuffer ...

*(pBuffer+i) , pBuffer,这两个中的pBuffer已经是定义好的u8*类型的地址指针了吧?
pBuffer就是pBuffer数组中的第i个元素吧?
也就是可以理解成,数值地址指针实际上就是数组的元素,对吧?
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 03:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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