Board logo

标题: [求助]请进!!!!! [打印本页]

作者: quanyonggao    时间: 2009-2-12 19:38     标题: [求助]请进!!!!!

UINT *STD

((UINT8 *)STD)--;

*((UINT8 *)STD)=;

上述指针是怎么运用的?是什么意思?我有点模糊,谢谢留言!!!


作者: lw362811022    时间: 2009-2-12 21:36

本来定义没*的吧


作者: fayefayehoo    时间: 2009-2-17 09:09

指向的内容变了,本来指向的是16位的数据

下面2句红的,在操作时只用了这个地址上的8位数据


作者: quanyonggao    时间: 2009-2-18 19:09

楼上的兄弟你好:

((UINT8 *)STD)--;关键是STD前面的(UINT8 *)是什么意思?是地址减1?

*((UINT8 *)STD)=;是赋值吗?

是‘()'和'*'的组合,我不知道是什么意思?


作者: fayefayehoo    时间: 2009-2-19 09:31

STD本来是指向16位数据的一个指针,现在强制转换成指向8位数据

举个例子吧,如果本来 *STD 的值是 0x1234, 那 *((UINT8 *)STD) 的值就是 0x12

*((UINT8 *)STD)=;这一句我也看不明白,我用cw的编译器是通不过的。

[此贴子已经被作者于2009-2-20 10:39:36编辑过]


作者: quanyonggao    时间: 2009-2-20 12:21

UINT16 *STD

((UINT8 *)STD)--;

*((UINT8 *)STD)=0x12;

我知道是什么意思了,刚开始有点疏漏,没有"=0X12",可能加上就好理解了。

((UINT8 *)STD)--; 是把16位的指针转换为8位指针,然后时地址减一;指向下一个地址字节。

*((UINT8 *)STD)=0x12; 是赋值语句,是把0x12赋值给当前指针指向的地址字节。

楼上的兄弟说的是对的!!!!谢谢!!!!






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0