|
刚刚看了傻孩子同学的这篇文章,有如下几处似有进一步商榷之必要。
1.
/***********************************************************
* 函数说明:对象初始化函数(小) *
* 输入: 对象指针,对象大小 *
* 输出: 对象指针 *
* 调用函数:无 *
***********************************************************/
void *Small_Object_Initial(void *pData,UINT8 chLength)
{
if ((pData == NULL) || (chLength == 0))
{
return NULL;
}
{
UINT8 chCounter = 0;
for (chCounter = 0;chCounter < chLength;chCounter++)
{
((BYTE *)pData)[chCounter] = 0;
}
}
return pData;
}
---------------------------
该函数的参数pData为void*指针,而函数体确为BYTE *指针。如有如下调用:Small_Object_Initial((int *)pINT,N);即对N个(int*)pData初始化时时可能会发生错误。
2.
typedef struct DisplayDeviceInterface DDI;
struct DisplayDeviceInterface
{
DEVICE_ID_TYPE DeviceID; //设备ID BIT15用于区别设备是否为虚拟设备
UINT32 dwDeviceAddress; //设备地址
UINT32 dwDeviceSize; //设备允许的区域大小
DDI_RESET fnReset;
DDI_WRITE fnWriteByte;
DDI_READ fnReadByte;
DDI_WRITE_STREAM fnWriteStream;
DDI_READ_STREAM fnReadStream;
DDI_SET_ADDRESS fnSetAddress;
DDI_CLS fnCLS;
};
---------------------
typedef之时,编译器并不晓得有个struct DisplayDeviceInterface ,因此会产生编译错误。应该将该句放在struct DisplayDeviceInterface 定义之后。 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
如果天空是黑暗的,那就摸黑生存;
如果发出声音是危险的,那就保持沉默;
如果自觉无力发光,那就蜷伏于牆角。
但是,不要习惯了黑暗就为黑暗辩护;
也不要为自己的苟且而得意;
不要嘲讽那些比自己更勇敢的人。
我们可以卑微如尘土,但不可扭曲如蛆虫。
|