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)
使用宏定义对逻辑处理一样的代码实现统一管理,使得使用时非常方便。
浙公网安备 33010602011771号