所在的位置: c++ >> 基本简介 >> CC++预处理元编程

CC++预处理元编程

CC++预处理元编程

点击上方“WXCOP”可以定阅哦!1、从一个问题开始以下代码存在结构性重复,如何消除?上面的例子中除每一个文件内部有结构性重复,文件之间也有结构性重复!当我们每增加一个消息的定义,都需要顺次在四个文件中增加对应的消息ID定义,计数器定义,计数器累加和计数器打印的代码,在整个过程中还要保证所有变量名、字符串等的命名一致性问题。那末如何解决上述问题呢?最容易想到的方式就是定义一个元数据文件,然后写个脚本自动扫描元数据文件,自动生成上述四个文件。例如可以定义一个xml格式的元数据文件l:然后再写一个python脚本,依照规则从这个xml自动生成EventId.h、EventCounter.h,CountEvent.c、PrintEvent.c,如下图所示:在大的项目中频繁使用上述方式,常常致使纯业务代码的技术栈不一致!例如元数据定义可以用xml、yaml、jason...,脚本语言可以用python、ruby、perl...,将会引发以下问题:-需要项目中所有构建代码的机器上安装对应脚本语言的解释器;-版本的构建进程管理变得复杂;-受限于业务软件人员能力,对脚本的修改可能会集中在熟练掌握脚本语言语法的人身上;-联贯的代码开发进程,却要在不同IDE和工具链之间切换;那末有没有办法利用C/C++语言本身完成上述工作呢?有!那就是利用预处理元编程技能!2、预处理元编程对上述问题,我们回顾利用脚本的解决方法:先定义一份元数据,然后利用脚本将其解释成四种不同的展现方式!一份描写,想要在不同场合下不同含义,如果利用宿主语言解决的手段就是多态!大多数程序员都知道对C++语言,可以实行多态的阶段分为静态期和动态期。静态期指的是编译器在编译阶段肯定多态结果,而动态期是在程序运行期肯定!静态多态的经常使用手段有函数/符号重载、模板等,动态多态的手段常常就是虚函数。事实上很少有人
































成都治疗白癜风的医院
昆明治白癜风最好的医院



转载请注明:http://www.nydjfy.com/jbjj/664.html

  • 上一篇文章:
  •   
  • 下一篇文章: