在一段c程序中看见这样的代码,不知道是什么意思,大家帮忙看看(50分)

  • 主题发起人 主题发起人 agangr
  • 开始时间 开始时间
A

agangr

Unregistered / Unconfirmed
GUEST, unregistred user!
{
float je
je=100;
ret=ic_read(AREA1,0x1c,4,(unsigned char *)&je);///[red]在这里(unsigned char *)&je 是什么含义呢???????[/red]
ret=ic_write(AREA1,0x1c,4,(unsigned char *)&je);
}
下面为ic_read()和ic_write()的声明原形:
int ic_write(unsigned int area_id,unsigned int startsite,unsigned char size,unsigned char *buff)
int ic_read( unsigned int area_id,unsigned int startsite,unsigned char size,unsigned char *buff)
 
没什么,(unsigned char *)是强制类型转换,&je 是取地址。得到一个类型为(unsigned char *)的指向je的指针。
 
强制类型转换:因为形参是unsigned char指针型的,所以要把实参je(实型)的地址&je转换成unsigned char *(unsigned char指针型)
 
取得ic卡某扇区的值放入je的地址中,从地址0x1c开始取4个地址
在Delphi中也应该可以用取指针操作符来实现(PChar)@je,建议最好用数据组来取出来,
然后转成float类型的
我只会用C来操作底层,但我想D也是这样原理的
 
多人接受答案了。
 
后退
顶部