RGBTRIPLE *p中得数据如何放到DWORD中
DWORD dw = (p->rgbtRed << 16) + (p->rgbtGreen << 8 ) + p->rgbtBlue;
效率不够高
但dw =(*(DWORD*)p);会有问题

解决方案 »

  1.   

    感觉这样的速度已经很快了。好像更快的,我不知道,或许可以这样:
    DWORD dw = (p->rgbtRed << 16) | (p->rgbtGreen << 8) | p->rgbtBlue;
    这里只是提高了+这个运算符的速度,按说,|的速度比+要快。
    或者试试这个:
    DWORD dw = (*(DWORD*)p) & 0x00ffffff;
      

  2.   

    DWORD dw = (*(DWORD*)p) & 0x00ffffff;
    会报错 因为DWORD是四个字节 p四三个字节 
    如果最后的那个字节在无效区域那么就会非法操作