求大神帮忙解读如下程序错误:
我在程序中要这样调用这个函数
[mw_shl_code=c,true]uint32 GetData(uint32 AXIS, uint32 Reg)
{
uint32 *dat0;
uint32 *dat1;
ReadRegister(Reg, dat0, dat1, AXIS, AxisSel_Default);
return ( *dat0 | (*dat1<<16) ); // 疑问:是否会产生数据截断??
}[/mw_shl_code]
但是提示错误:
[mw_shl_code=c,true]ReadRegister()函数参数太多,原型是void ReadRegister(uint32 comm, uint32 *buf0, uint32 *buf1, uint32 axisaddr) 明明是五个参数!?哪里多了?[/mw_shl_code]
[mw_shl_code=c,true]而且我的返回值为uint32 (#define uint32 unsigned long),而后面的程序将如下调用:[/mw_shl_code]
[mw_shl_code=c,true]
[mw_shl_code=c,true]dat = GetData(AXIS_X, RRCUN1); // 疑问:如何把uint32 -> uint8
SetTextValue( 0, 18, dat); [/mw_shl_code]
由于
[mw_shl_code=c,true]void SetTextValue(uint16 screen_id,uint16 control_id,uchar *str);的定义是这样,所以我把dat定义为uchar*(#define uchar unsigned char)[/mw_shl_code]
[mw_shl_code=c,true]但是在参数传递的时候出错,表示 数据类型不符合.....[/mw_shl_code]
[mw_shl_code=c,true] 请问,我GetData返回为 uint32 我如何把返回的值编程 uhcar* 进行传递??? [/mw_shl_code]
[/mw_shl_code] |