我必须为现有方法定义一组新的包装。 这些新的包装打算通过包含某些跟踪信息来帮助调试。方法调用的链接
原始源代码:
sample.c文件::
Caller{
void functionA(){
funcB();
}
}
Callee{
void funcB(){
}
}
修改代码与传统的包装功能:
Sample.h ::
#define funcB wrapperFuncB //not visible to Callee
Caller{
void functionA(){ //this gets redirected to wrapperFuncB cos of #define
funcB();
}
}
Callee{
void wrapperFuncB(){
if(DEBUG){ //value of DEBUG is set at runtime
//COLLECT Trace data
}else{
funcB();
}
}
void funcB(){
}
}
这种机制有额外的开销: 1]所有对funcB的调用都是ro贡献于wrapperFuncB,DEBUG的irrespecitve启用与否 2]另一种方法帧[wrapperFuncB]已被创建,DEBUG的irrespecitve启用与否 3]条件检查的开销
对你有好处。你有问题吗 ? – ereOn 2010-09-27 10:32:48
这看起来不像C. Tag被移除。 – pmg 2010-09-27 10:36:45