首页 > 软件开发 > C语言 >

一份C语言消息处理的模板

来源:互联网 2023-03-16 19:06:45 307
摘要:关于一份C语言消息处理的模板。

iYF办公区 - 实用经验教程分享!

一份C语言消息处理的模板iYF办公区 - 实用经验教程分享!

步骤/方法

  • 1  阅读代码时提取出来的,是一个冷门的东西,也记不清从哪下的了,贴代码吧,觉得封装的还成:

    iYF办公区 - 实用经验教程分享!

      //msg.h

    iYF办公区 - 实用经验教程分享!

      #ifndef __MSG_H__

    iYF办公区 - 实用经验教程分享!

      struct CMD_HANDLER_ENTRY

    iYF办公区 - 实用经验教程分享!

      {

    iYF办公区 - 实用经验教程分享!

      void (*handler)(int,char**);

    iYF办公区 - 实用经验教程分享!

      int args;

    iYF办公区 - 实用经验教程分享!

  • 2  char *name;

    iYF办公区 - 实用经验教程分享!

      char *help;

    iYF办公区 - 实用经验教程分享!

      };

    iYF办公区 - 实用经验教程分享!

      #define CMD_ENTRY(NAME,ARGC,HELP) { do_##NAME, ARGC, #NAME, HELP }

    iYF办公区 - 实用经验教程分享!

      #define CMD_ {0,0,0}

    iYF办公区 - 实用经验教程分享!

      #define CMDHANDLER(CMD) void do_##CMD(int argc, char** argv)

    iYF办公区 - 实用经验教程分享!

      #endif

    iYF办公区 - 实用经验教程分享!

      //msg.cpp

    iYF办公区 - 实用经验教程分享!

  • 3  #include "msg.h"

    iYF办公区 - 实用经验教程分享!

      //

    iYF办公区 - 实用经验教程分享!

      // Command table

    iYF办公区 - 实用经验教程分享!

      //

    iYF办公区 - 实用经验教程分享!

      CMD_HANDLER_ENTRY CommandTable[] = {CMD_};

    iYF办公区 - 实用经验教程分享!

  • 3此文章未经授权抓取自百度经验
  • 4  可以通过CMDHANDLER来封装函数,展开后就成了:

    iYF办公区 - 实用经验教程分享!

      void do_##CMD(int argc, char** argv)

    iYF办公区 - 实用经验教程分享!

      这种形式,也就是

    iYF办公区 - 实用经验教程分享!

      do_func(int argc,char **argv)

    iYF办公区 - 实用经验教程分享!

      声明时可以用这个宏生命,定义时也可以用这个定义
  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!iYF办公区 - 实用经验教程分享!


    标签: C语言

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码