专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
语法问题求解答
2019-07-21 04:54
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
9434
6
1705
S是一个结构体 有一个 uint8 index 和16个bool变量,(uint16 *)&S[1] = *data; *data是个16位的指针这是直接把data的值赋予了后面的16个bool变量吗?
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
正点原子
1楼-- · 2019-07-21 06:11
测试下
加载中...
edmund1234
2楼-- · 2019-07-21 10:42
(uint16 *)&S[1] = *data;
这样写, 是指你有多过1个结构体, 是在拿S[1]的地址, 而不是拿S的第二个bool变量的地址。
加载中...
ZDawn
3楼-- · 2019-07-21 10:46
意思应该是 S[1]元素的地址改为 *data,但是由于数组的地址不可更改,所以运行结果应该有问题
加载中...
misl1994
4楼-- · 2019-07-21 16:28
((uint16 *)&S)[1] = *data,少打个括号,就是一个结构体,就是赋值给后16个
加载中...
jxcrgt35
5楼-- · 2019-07-21 17:14
精彩回答 2 元偷偷看……
加载中...
holy404290384
6楼-- · 2019-07-21 21:52
本帖最后由 holy404290384 于 2019-2-28 17:11 编辑
((uint16 *)&S)[1] ,取S的地址,让后强制转换成U16的指针,此操作下,如果S不是16位对齐,运行时会出错,假设是16为对齐的,
那么这个((uint16 *)&S)就相当于是个数组名,[1]就是数组的第二个元素,相对于&S的地址偏移是2(U16);
S中的bool是占的宽度要根据你的实际情况,所以是不是
赋值给后16个,不好确定
加载中...
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
STM32开发板免费用活动
7 个回答
stm32 处理 DHT11占用太多时间,大家程序是怎么设计的
8 个回答
分享一个STM32单片机做的离线编程器代码
9 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
这样写, 是指你有多过1个结构体, 是在拿S[1]的地址, 而不是拿S的第二个bool变量的地址。
((uint16 *)&S)[1] ,取S的地址,让后强制转换成U16的指针,此操作下,如果S不是16位对齐,运行时会出错,假设是16为对齐的,
那么这个((uint16 *)&S)就相当于是个数组名,[1]就是数组的第二个元素,相对于&S的地址偏移是2(U16);
S中的bool是占的宽度要根据你的实际情况,所以是不是赋值给后16个,不好确定
一周热门 更多>