读书人

问一个关于宏插入并替换代码的小疑点

发布时间: 2013-01-08 14:02:14 作者: rapoo

问一个关于宏插入并替换代码的小问题
我需要显示每一个程序调用的时间,显示时间的已经写好了,比如,
要测试func()、sub()这几个函数经历的时间,并最后显示总时间:
Timer t;
float time,totaltime=0;
//////////////////////////////分块1
t.ininclock();
func();
time=t.getclock();
totaltime+=time;
cout<<Time elapsed:"<<time<<endl;
//////////////////////////////分块2
t.initclock();
sub();
time=t.getclock();
totaltime+=time;
cout<<"Time elapsed:"<<time<<endl;
///////////////////////////////////
...
cout<<"Total time elapsed:"<<totaltime<<endl;
如上,因为函数太多了,一个个写太麻烦了,现在想把分块n写成一个宏,请问应该怎么写?
比如可以写成
MACROBLOCK
{
for (i=0;i<10;i++)
func();
}
就被替换为
///////////////分块n
t.initclock();
for (i=0;i<10;i++) //
func(); //
time=t.getclock();
totaltime+=time;
cout<<"Time elapsed:"<<time<<endl;
/////////////////
这样就可以显示整个for循环调用的时间,就是说MACROBLOCK{x}里面的x可以是任意程序代码,这样可能吗?如果可能请教教小弟,谢谢啦
[解决办法]
不必用宏,用类就行了
class A{
public:
A(){初始化}
~A(){打印时间}
};

{
A a;
func();
}

[解决办法]
该回复于2012-12-07 08:57:20被管理员删除

读书人网 >C++

热点推荐