C++ 一种在程序运行前实现预处理的方法

有时候需要在程序运行前实现一些预处理的操作,这时可以采用定义一个结构体,并在结构体的构造函数中实现要预处理的动作,并定义一个全局的结构体变量,这样程序在执行main前就会执行构造函数的代码。例如:

1 struct PreProcess{
2 
3     PreProcess(){
4         printf("preprocess functions\n");
5     }
6 
7 };
8 PreProcess preprocess;

对于大规模的预处理方法,可采用宏定义的方法,例如:

1 #define AUTOADDCLASS2NS(cls) \
2     struct CLS_##cls{CLS_##cls(){ \
3         Object* obj = new cls; \
4         obj->setClassName(#cls); \
5         NameSpace::getInstance()->addClass(#cls, obj); \
6     }}; \
7     CLS_##cls _CLS_##cls;
8 
9 AUTOADDCLASS2NS(Rclass1)

使用宏定义对逻辑处理一样的代码实现统一管理,使得使用时非常方便。

 

posted on 2017-12-29 14:05  我方唱罢你登场  阅读(112)  评论(0)    收藏  举报

导航