#define ADDCMDMAP(_cls, _cmd) \
m_mapCmd[_cls::GetMsgID()] = NETDATACMDDO(sizeof(_cls), &CNetClientSocket::_cmd);这句怎么解读?

解决方案 »

  1.   

    cls::GetMsgID()得到整型的数组下标值
    后面就是调用相应的函数处理把返回值给保存到数组里
      

  2.   

    哦,中括号是数组的东西,那整句定义了哪个宏?是定义了ADDCMDMAP吧?
      

  3.   

    就像a.InsertString( a.GetCount() ) = xxxxxxxx;
      

  4.   

    定义ADDCMDMAP这个宏,
    m_mapCmd是个数组,下标为_cls::GetMsgID()
      

  5.   

    #define ADDCMDMAP(_cls, _cmd) \    //定义了一个带两个参数的宏函数  
    m_mapCmd[_cls::GetMsgID()] = NETDATACMDDO(sizeof(_cls), &CNetClientSocket::_cmd);
    //m_mapCmd[_cls::GetMsgID()]是一个数组元素,_cls::GetMsgID()是得到数组的下标,并将
    //NETDATACMDDO(sizeof(_cls), &CNetClientSocket::_cmd)所得到的值赋值给这个数组元素.