关于几个宏的展开

工作之余写一下,给有帮助的朋友。

 

typedef struct  
{
    
int a;
    
int b;
    
int    c;
    
char *str;

}
PROCLIST_ENTRY;

typedef 
struct  
{
    
int* a;
    PROCLIST_ENTRY
* entry;
    
int c;
    
int d;

}
WINDOW_PROCREG;


#define BEGIN_CLASSMESSAGE_MAP(msgHandleMap, newClassID, classID) 
    
extern  PROCLIST_ENTRY msgHandleMap##wpList[];
            WINDOW_PROCREG msgHandleMap[
1= {{(int*)NULL, msgHandleMap##wpList, newClassID, classID}};
            PROCLIST_ENTRY msgHandleMap##wpList[] 
= {

#define END_MESSAGE_MAP()       {0, -1, -1, NULL} };  //缺省处理函数.

#define ON_MESSAGE(msg , proc)  {0, msg, msg , proc},


//////////////////////////////////////////////////////////////////////////
BEGIN_CLASSMESSAGE_MAP(Class, 12)
    ON_MESSAGE(
1"no.1")
    ON_MESSAGE(
2"no.2")
    ON_MESSAGE(
3"no.3")
    ON_MESSAGE(
4"no.4")
    ON_MESSAGE(
5"no.5")
END_MESSAGE_MAP()

//////////////////////////////////////////////////////////////////////////
int main (int argc, char* argv[])
{
    
int i;

    
for(i=0; i<5; i++)
    
{
        printf(
"%s ", (Class->entry)[i].str);
    }


    
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值