使用#define ##拼接函数,模式化注册函数(ffmpeg 中的av_register_all)

来源:互联网 发布:农行软件开发中心待遇 编辑:程序博客网 时间:2024/06/18 04:45



     #define 使用##,起到拼接作用。可以用来系统初始化的时候统一注册函数。(ffmpeg 中的av_register_all)




学以致用:



#include <stdio.h>#include <stdlib.h>#include <string.h>#define CONFIG_INT_ADD 1void add_int_ab(int a,int b){printf ("\n  ===  %d  ===\n",a+b);}void (*p)(int a,int b);#define REGISTER_ADD(X, x)                                          \    {                                                                   \        if (CONFIG_##X##_ADD)                                       \           p = add_##x##_ab;                \    }int main(){REGISTER_ADD(INT, int);p(444,222);return 0;}




0 0
原创粉丝点击