将业务逻辑功能实现为宏是一个好主意吗?
我继承了一些遗留的 C++ 代码,我发现很多业务逻辑功能都是用长而神秘的宏来实现的。
宏比函数有优势吗?使用宏的一般原理是什么?
哪种逻辑最适合宏?
这是代码中的一个简单示例
#define INSERT_VALUES(IN,ID,EO) {\
double evaluationOutput = EO;\
int controls = 0;\
int input_controls = m_input_controls[IN];\
if(m_value_list[IN].ShouldProcess())\
{\
evaluationOutput = m_evaluationOutput[IN];\
controls = m_controls[IN];\
}\
VALUE_EXIST(evaluationOutput,controls,input_controls,IN,ID,Adj);\
m_evaluationOutput[IN] = controls > 0 ? evaluationOutput : 0.0;\
m_controls[IN] = controls;\
m_input_controls[IN] = input_controls;\
}