/ * ディレクトリ: テストするコード 2つのコンパイル原則 3つのパロディ機能を * /
コードのテスト
INT のmain() { int型 I = 3 。 int型のk = 0 。 INT、M = 0 。 K = ++ I; printf(" K =%ディ=%d個の\ n " 、K、I)。 M = I ++ 。 printf(" M =%ジ=%dの" 、M、I)。 リターン 0 ; } / * //結果 、K = 4、I = 4 、M = 4、I = 5 * /
二つのコンパイルの原則
K = ++ I ; 00044E63 のMOV EAX、DWORD PTRを[I] 00044E66 追加 EAX、1つの 00044E69 のmov DWORD PTRを[I]、EAX 00044E6C MOV ECX、のDWORD PTR [I] 00044E6F のmov DWORD PTRを[K]、ECXの M = I ++ 。 00044E87 のMOV EAX、DWORD PTRの[I] 00044E8A用 のMOV のDWORD PTR [M]、EAX 00044E8D MOV ECX、のDWORD PTR [I] 00044E90 追加 ECX、1つの 00044E93 MOV DWORD PTRの[i]は、ECX
三つのパロディ機能
#include " STDAFX.H " INT FirstPlus(INT * パイント) { * PINT = *パイント+ 1 。 返す * パイント。 } INT AfterPlus(INT * パイント) { int型 nReturn = 0 。 nReturn = * パイント。 * PINT = *パイント+ 1 。 返すnReturnを。 } int型のmain() { int型 I = 3 。 int型のk = 0 。 int型M = 0 。 printf(" K =%ディ=%d個の\ n " 、K、I)。 K = FirstPlus(&I)。 printf(" K =%ジ=%d個の\ nを\ n " 、K、I)。 printf(" M =%ディ=%d個の\ n " 、M、I)。 M = AfterPlus(&I)。 printf(" M =%ジ=%dの" 、M、I)。 リターン 0 ; } / * //結果 のk = 0、I = 3 、K = 4、I = 4 、M = 0、I = 4 、M = 4、I = 5 * /