※ 引述《leicheong (理昌)》之銘言:
> ※ 引述《noguest.bbs@ptt.cc (guest)》之銘言:
> > 以下面這個簡單地程式為例:
> > const int a=10; (或是 #define a 10)
> > int b=0;
> > ...
> > b+=a;
> 以下是這段程式館碼在VC7中compile的結果:
> 沒有完成在全域最佳化(/Og)下的測試, 因為找不到進入點...
> 或許遲一點再做吧...
補上全域最佳化下的結果:
不論在#define或const宣告, 都只剩下這一句:
00401000 /$ 6A 0A PUSH 0A
P.S.: 在上面的測試後, 我加上了"printf("%d", b);"來做定位.
當時兩種情況下都會在把結果mov回memory後, 再mov到ecx, 然後push
進stack. 因為不影響比較也就沒有copy出來了.
前文略去的部份(const):
0040101D |. 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8]
00401020 |. 51 PUSH ECX
--
※ Origin: SayYA 資訊站 <bbs.sayya.org>
◆ From: ip-84-126-134-202.rev.dyxnet.com