最近遇到一个问题
对于下面这段代码
#define addr_fpga_version (addr_base + (0x4031))
int16u Read16uData(int16u *pAddr)
{
int16u sTemp = *pAddr;
return sTemp;
}
pgaVersion = Read16uData((int16u *)addr_fpga_version);
为什么当
#define addr_base ((int16u*)0x60000000)
时,FPGA中收到的地址是正确的
而当
#define addr_base (0x60000000)
时,FPGA中收到的地址就不对呢???
不太明白这两种定义的方式有什么区别,按理说后边的函数都强制将数值转换成指针了呀?? |