谁能解释下 下面这几句
谢谢!!!!!!!!!!!!!!!!!!!!!!
#define BEGIN_AWMSG_MAP(theClass,baseClass) \
        AW_MSGMAP* theClass::GetAWMsgMap() const \
                { return &theClass::AWMsgMap;} \
        AW_MSGMAP theClass::AWMsgMap = \
                {&(baseClass::AWMsgMap), \
                (AW_MSGMAP_ENTRY*) (theClass::_AWMsgEntries) }; \
        AW_MSGMAP_ENTRY theClass::_AWMsgEntries[] = \
                {#define ON_AWMSG(id,memberFxn) {(LOW_AW_TYPE)id,(LPF_AWPROC)(memberFxn)},//spfee modify at 20100525 for pclint
#define END_AWMSG_MAP() \
    {enLAW_Butt,(LPF_AWPROC)0} \
    };
            

解决方案 »

  1.   

    一,定义了一个函数,并且实现了:
    AW_MSGMAP* theClass::GetAWMsgMap() const
      { return &theClass::AWMsgMap;}二,定义并初始化了一个AW_MSGMAP对象:
     AW_MSGMAP theClass::AWMsgMap = 
      {&(baseClass::AWMsgMap),(AW_MSGMAP_ENTRY*) (theClass::_AWMsgEntries) };三,定义了一个数组_AWMsgEntries[]
     AW_MSGMAP_ENTRY theClass::_AWMsgEntries[] = 
      {以后第一行ON_AWMSG,就为数组_AWMsgEntries增加一个元素。
    这些都是编译阶段完成的,所以上面的数组并不是可变数组。
      

  2.   

    比如一个POINT数组POINT pp[] = {
    {1, 2}, //每一行定义一个POINT
    {2, 3}, //每一行定义一个POINT
    }