久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

C++憤恨者札記5

 isudong 2015-11-14

臨時(shí)變量的內(nèi)存分配

這里考慮對(duì)象做為函數(shù)參數(shù)與返回值時(shí),,使用無名臨時(shí)變量的情況,。

臨時(shí)變量?jī)?nèi)存分配

  1. class Node  
  2. {  
  3.         public:  
  4.             int data1;  
  5.             int data2;  
  6.             int data3;  
  7.             Node()  
  8.             {__asm nop}  
  9. };  
  10.   
  11. void Fn1( Node n )  
  12. {  
  13.         n.data1++;  
  14. }  
  15.   
  16. Node Fn2()  
  17. {  
  18.         return Node();  
  19. }  
  20.   
  21. void main()  
  22. {  
  23.         __asm int 3  
  24.         Fn1( Node() );  
  25.         __asm int 3  
  26.         Fn2();  
  27.         __asm int 3  
  28. }  

調(diào)用Fn1時(shí)的反匯編結(jié)果:


Fn2相關(guān)反匯編結(jié)果:


結(jié)論是臨時(shí)變量的內(nèi)存來自于函數(shù)的調(diào)用者

修改臨時(shí)變量的值

Fn1的參數(shù)并不是臨時(shí)變量本身,而是由臨時(shí)變量填充,,在Fn1內(nèi)部無法對(duì)其變量,。而Fn2傳入的是臨時(shí)變量指針,可以在Fn2內(nèi)外對(duì)其進(jìn)行修改,,下面是實(shí)驗(yàn)代碼:

  1. static int gTemp = 0;  
  2. class Node  
  3. {  
  4.         public:  
  5.             int data;  
  6.             Node()  
  7.             {  
  8.                     if ( 0 == gTemp )  
  9.                     {  
  10.                             this->data = 0;  
  11.                             gTemp++;  
  12.                     }  
  13.                     else  
  14.                             this->data++;  
  15.             }  
  16. };  
  17.   
  18. Node Fn2()  
  19. {  
  20.         return Node();  
  21. }  
  22.   
  23. void main()  
  24. {  
  25.         Node* p = 0;  
  26.         __asm int 3  
  27.         while ( true )  
  28.         {  
  29.                 p = &Fn2();  
  30.                 p->data++;  
  31.         }  
  32.         __asm int 3  
  33. }  



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多