语法问题求解答

2019-07-21 04:54发布

S是一个结构体 有一个 uint8 index 和16个bool变量,(uint16 *)&S[1] = *data; *data是个16位的指针这是直接把data的值赋予了后面的16个bool变量吗?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
holy404290384
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个,不好确定

一周热门 更多>