Disassembly3:variable
生活随笔
收集整理的這篇文章主要介紹了
Disassembly3:variable
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- Initializer
C++ Primer上說:如果未初始化的Built-in type是定義在function外部的,那么它將自動被初始化為“0”;如果uninitialized的built-in type對象是定義在function內部的,那么它就是undefined的,那么,對它拷貝和訪問就都是錯誤的。
觀察下面這段匯編程序:
同樣是變量,"int i"就沒有相應的匯編代碼。而當將j的值賦值給i的時候,是從內存的A1F320h地址取出的dword大小的值:
function外部的全局變量并非存儲在棧空間上,而是在其它某處存放著。
- Scope
我們可以觀察下面reused的使用:
第一個將reused賦值給變量b,這里使用的是從內存某個地址中取出一個數:
這個形式的賦值可以看出使用的是全局變量,當然了,因為到這里時,函數中的局部的reused還沒有定義,所以這里使用的肯定是全局的
再來看下面的int reused = 0,這里就是新定義了一個局部變量,當我們再使用reused賦值的時候,使用的就是這個局部的reused(局部的reused覆蓋掉了全局的reused):
此時由于有了局部的reused的存在,如果我們再想使用全局的reused,就必須加上scope operator:
?
轉載于:https://www.cnblogs.com/predator-wang/p/4899093.html
總結
以上是生活随笔為你收集整理的Disassembly3:variable的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java多线程-新特性-线程池
- 下一篇: WMI