|
-------------------------------------------------
typedef struct AAAAA
{
int aaa;
int bbb;
int ccc;
}AAA;
typedef struct BBBBB
{
int aaa;
int bbb;
int ccc;
AAA Aaa;
}BBB;
typedef struct CCCCC
{
int aaa;
int bbb;
int ccc;
BBB Bbb;
}CCC;
typedef struct DDDDD
{
int aaa;
int bbb;
int ccc;
CCC Ccc;
}DDD;
DDD Ddd;
Ddd.Ccc.Bbb.Aaa.aaa = 0;
int itime = GetTickCount();
for(int i=0; i<10000000; i++)
{
++Ddd.Ccc.Bbb.Aaa.aaa;
}
itime = GetTickCount() - itime;
Memo1->Lines->Add("---1----" + IntToStr(Ddd.Ccc.Bbb.Aaa.aaa));
Memo1->Lines->Add(itime);
AAA *AAa;
AAa = &Ddd.Ccc.Bbb.Aaa;
AAa->aaa = 0;
itime = GetTickCount();
for(int i=0; i<10000000; i++)
{
++AAa->aaa;
}
itime = GetTickCount() - itime;
Memo1->Lines->Add("---2----" + IntToStr(AAa->aaa));
Memo1->Lines->Add(itime);
-----------------------------------------------------------------
++Ddd.Ccc.Bbb.Aaa.aaa;
++AAa->bbb;
이 두게 중 어느게 더 빠를까 보다가
AAa->bbb = 0;
Ddd.Ccc.Bbb.Aaa.aaa = 0;
이렇게 초기화를 하고 실행하면 ++AAa->bbb; 이렇게 쓰는게 느리고
초기화를 빼고 하면 ++Ddd.Ccc.Bbb.Aaa.aaa; 이게 더 느리고
하네요 왜 그런지 아시는 분 설명좀 부탁드립니다.
그냥 궁금합니다..
|