首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]请进!!!!!

[求助]请进!!!!!

UINT *STD

((UINT8 *)STD)--;

*((UINT8 *)STD)=;

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

本来定义没*的吧

指向的内容变了,本来指向的是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)--;

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

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

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

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

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

返回列表