刨根问底C、C++(1)——i++和++i那个效率高点
【问题】i++和++i那个效率高点【答案】
(1)内建数据类型的情况。他们的效率没有什么区别
(2)自定义数据类型的情况,++i的效率更高点。
【分析】
我们先来编写一段程序
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0;
int x = 0;
i++;
++i;
x = i++;
x = ++i;
system("pause");
return 0;
}我们得到程序的汇编:
;Line 9
mov ecx,DWORD PTR _i$
add eax,1
movDWORD PTR _i$,ecx
;Line 10
(同上一样)
这个说明:内建数据类型效率一样。但是自定义的数据类型。++i可以返回对象的引用。但是后缀的i++必须返回对象的值。这导致了在大对象的时候会产生较大的复制开销。引起效率降低。
永不止步 nowayings
页:
[1]