当前位置:首页 » 业界相关

问个define的问题

 Advertisement:

热门软件下载:


#define   dyncfg_funcptr(x)   dyn_ptr_##x  
  和#define   dyncfg_funcptr_set(x,y)   dyn_ptr_##x   =   y  
  这个两个宏定义如何展开?能否举个例子。

推荐阅读

  • RF MEMS市场将会大有发展 年复合增长55% [详细内容]
  • 索尼行货PS3进京没年头 [详细内容]
  • C350i使用感想 [详细内容]
  • SEMTECH半导体公司报告第三季盈余下降21% [详细内容]
  • 索尼将通过网络固件升级解决PS3游戏兼容问题 [详细内容]
  • 关于CX65的2点不人性化的设计 [详细内容]
  • 需求旺盛 半导体制造产能利用率居高不下 [详细内容]
  • 网友回答:
    网友:arfi

    ##是用来进行字符串连接的,如果你的函数中出现了dyncfg_funcptr(func1),就会被替换为dyn_ptr_func1。例如:  
       
      #include   <stdio.h>  
       
      #define   dyncfg_funcptr(x)   dyn_ptr_##x  
       
      void   dyn_ptr_1(void)  
      {  
      printf("in   function   dyn_ptr_1\n");  
      }  
       
      void   main(void)  
      {  
      void   (*p)();  
       
      p   =   dyncfg_funcptr(1);  
      (*p)();  
      }

    网友:hitbabiq

    宏定义就是在展开时,只是简单的替换,##楼上已经讲了,是字符串连接

    .  

    相关评论

    Login