首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

使用指针,没看见过这么用的,请大家指点迷经,该怎么处理

2012-03-12 
使用指针,没看见过这么用的,请大家指点迷经我公司是搞嵌入式。今天看公司的代码,有类似如下代码(在VC中调试

使用指针,没看见过这么用的,请大家指点迷经
我公司是搞嵌入式。今天看公司的代码,有类似如下代码(在VC中调试)
#include   <stdio.h>
#include <memory.h>

void   main()
{
unsigned   char   *   pByte   =   0;
int   iNumber   =   4;
void   *pData   =   0;

memcpy(&pData,&iNumber,sizeof(int));
pByte   =   (unsigned   char   *)pData;

printf( "%3d ",pByte[0]);

}

我本能反应这是不可能的,最起码在PC上不可能的,我在VC中编写上边代码做测试,发现VC和我想想的一样,但是我们的软件跑得很正常,能不能解释下。



[解决办法]
应该是哪边理解错了!
void *pData = 0;只是使指针指向地址 -- 0 , 后面的赋值相当于对地址 0 赋值。

在嵌入式中经常把某个地址强制转换为指针,然后对该地址进行读写操作,如:
#define REG (*(volatile unsigned char *)0x5F)

char buf;
buf = REG;//read
REG = 5; //write

热点排行