C语言中 ##的使用

##:用来连接##前和##后的字符,使其组成新的字符,主要用途是构造复杂的宏

例如:

#define CONCAT(a, b) a ## b     //定义宏

int CONCAT(my, Variable) = 10;    相当于   int myVariable = 10;    

例如:

//定义
#define NEW_PAGE_FOR_INT(variableName, parentPage, nameStr, configVariableName, unit, min, max, thisCallBackFun, otherCallBackFun) \
    extern UiMenuPage variableName;                                                                                                \
    static void variableName##Show(void *par)                                                                                      \
    {                                                                                                                              \
        AppUiSetIntPageShow(&variableName, unit, thisCallBackFun);                                                                 \
    }                                                                                                                              \
                                                                                                                                   \
    static const UiBase *variableName##Handle(void *par)                                                                           \
    {                                                                                                                              \
        return AppUiSetIntPageHandle(&variableName, par, min, max);                                                                \
    } 


//调用
NEW_PAGE_FOR_INT(setAi2DlPage, Ai2AlignMenu, "AI2-DL", gNvm.aiPar[1].enginL, "", 0, 60000, NULL, SetAi2DlPageCbk);
NEW_PAGE_FOR_INT(setAi2DhPage, Ai2AlignMenu, "AI2-DH", gNvm.aiPar[1].enginH, "", 0, 60000, NULL, setAi2DhPageCbk);

利用此宏定义传参去定义新的函数,通过 ## 连接,实现统一的函数名前缀。

setAi2DlPageShow ,setAi2DlPageHandle

setAi2DhPageShow,setAi2DhPageHandle

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值