OpenEdv-开源电子网

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

I2C实验中的一个c语言问题

[复制链接]

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
发表于 2018-3-19 22:09:52 | 显示全部楼层 |阅读模式
10金钱
本帖最后由 学习stm32f4 于 2018-3-19 22:25 编辑

大家好。在I2C实验这一节,main.c中有一个const修饰的数组:
[mw_shl_code=c,true]const u8 TEXT_Buffer[]={"Explorer STM32F4 IIC TEST"};[/mw_shl_code]
那么,在AT24CXX_Write(u16 WriteAddr,u8 *pBuffer,u16 NumToWrite)函数中引用数组名TEXT_Buffer时,必须加上(u8 *):
[mw_shl_code=c,true]AT24CXX_Write(0,(u8*)TEXT_Buffer,SIZE);[/mw_shl_code]
否则,编译报错。
我试了一下,若不想加(u8 *),即:
[mw_shl_code=c,true]AT24CXX_Write(0,TEXT_Buffer,SIZE);[/mw_shl_code]
那么,定义u8 TEXT_Buffer[]数组时,不用const修饰,即去掉const后,可以直接在AT24CXX_Write()函数中引用数组名TEXT_Buffer,而不必再加(u8 *),这时编译不再报错,用探索板测试了一下,读写正常。


请问为何这样呢?

最佳答案

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

这个不理解? 类型相同才不报错。 内类型不同就就报错。基本的原则。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-3-19 22:09:53 | 显示全部楼层
这个不理解? 类型相同才不报错。  内类型不同就就报错。基本的原则。
回复

使用道具 举报

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
 楼主| 发表于 2018-3-20 11:32:20 | 显示全部楼层
正点原子 发表于 2018-3-19 22:09
这个不理解? 类型相同才不报错。  内类型不同就就报错。基本的原则。

多谢原子哥。
我的c语言基础真是太差了。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 02:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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