聚沙成塔 - AEE_GET_X宏和AEE_GET_Y宏

来源:互联网 发布:超级玛丽mac版下载 编辑:程序博客网 时间:2024/06/10 07:48

我们在处理触摸屏点击事件时常有这样的语句:

AEEPoint pt;
pt.x = (int16)( AEE_GET_X(dwParam) );
pt.y = (int16)( AEE_GET_Y(dwParam) ); 

 

VC里进行跟踪可以看到aee.h文件中有:

#define AEE_GET_X(dwParm)      ((int16)AEE_HI(dwParm))
#define AEE_GET_Y(dwParm)      ((int16)AEE_LO(dwParm))

继续跟踪看到仍是aee.h文件中有:

#define AEE_HI(dwParm)         ((uint16)(((uint32)(dwParm) >> 16) & 0x0000ffff))
#define AEE_LO(dwParm)         ((uint16)((uint32)(dwParm) &  0x0000ffff))

 

所以说很多人在代码中自己手写位操作来获取pt.x和pt.y,目的想提高代码执行效率。现在看来是有点画蛇添足了。(*^__^*) 霍霍……

 

顺便看看这个windows环境编程中的一个函数,目的是复习一丁点位操作:

unsigned long CatenateBits16(unsigned short sHighBits, unsigned short sLowBits)
{
long lResult = 0;

 

/* 将第一个16位值放入32位值的高16位 */
lResult = sHighBits;
lResult <<= 16;

 

/* 清除32位值的低16位 */
lResult &= 0xFFFF0000;

 

/* 将第二个16位值放入32位值的低16位 */
lResult |= (long)sLowBits & 0x0000FFFF;

 

return lResult;
}

原创粉丝点击