继续学习C++。
看到+=, -=, *=, /=以及其他复合赋值操作符号的时候,虽然以前学C的时候老师就讲过:这种方式的速度比相应的 A = A + B, A = A * B要快,因为对于前一种方式,左操作数只取了一次。
这不,正好前几天用到了clock()这个函数,那写个demo来看看到底快多少,于是有了下图所示的代码。
用三个变量记录了一下从程序开始,到调用clock()时,这段期间的时钟周期数。
对于常量“CLOCKS_PER_SEC”则是指每一秒的时钟周期个数,POSIX系统一般都是1,000,000
程序对两种方法分别执行了20亿次的加法运算记时,结果如下图所示,直接打印的是时钟周期数,而不是秒,如果要得到秒,用这个数除以CLOCKS_PER_SEC即可。
从结果看出,两种方式,20亿次加法运算,时间都是4.9X秒,差别非常小。并且,有可能第一种方式快,有可能第二种方式快,平均下来1:1。也有可能是哪里疏忽了,导致结果不对。
单从这次结果来看,无甚差别。
goodbye.