005 ++ iとI ++原則

 

/ * 
ディレクトリ:
   テストするコード
   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 
* /

 

 

おすすめ

転載: www.cnblogs.com/huafan/p/11484978.html