quanyonggao 当前离线
中级会员
UINT *STD
((UINT8 *)STD)--;
*((UINT8 *)STD)=;
上述指针是怎么运用的?是什么意思?我有点模糊,谢谢留言!!!
订阅 TOP
lw362811022 当前离线
本来定义没*的吧
TOP
fayefayehoo 当前离线
高级会员
指向的内容变了,本来指向的是16位的数据
下面2句红的,在操作时只用了这个地址上的8位数据
楼上的兄弟你好:
((UINT8 *)STD)--;关键是STD前面的(UINT8 *)是什么意思?是地址减1?
*((UINT8 *)STD)=;是赋值吗?
是‘()'和'*'的组合,我不知道是什么意思?
STD本来是指向16位数据的一个指针,现在强制转换成指向8位数据
举个例子吧,如果本来 *STD 的值是 0x1234, 那 *((UINT8 *)STD) 的值就是 0x12
*((UINT8 *)STD)=;这一句我也看不明白,我用cw的编译器是通不过的。
[此贴子已经被作者于2009-2-20 10:39:36编辑过]
UINT16 *STD
*((UINT8 *)STD)=0x12;
我知道是什么意思了,刚开始有点疏漏,没有"=0X12",可能加上就好理解了。
((UINT8 *)STD)--; 是把16位的指针转换为8位指针,然后时地址减一;指向下一个地址字节。
*((UINT8 *)STD)=0x12; 是赋值语句,是把0x12赋值给当前指针指向的地址字节。
楼上的兄弟说的是对的!!!!谢谢!!!!