vc6.0除錯時namespace中全域性變數不能檢視
#include
namespace n1
void pp()
void main()
除錯時,可以在watch視窗中看見n1::x的值,但如果用using namespace n1;的話,在watch視窗中就不會顯示x的值,而是會提示cx0017:error :symbol "x" not found,但如不定義n1,而直接定義全域性變數x,則滑鼠懸停時和watch視窗都會顯示x的值,
使用using namespace n1後,如想在watch視窗中觀察x值,應該加::修飾符。
邏輯上這也是合理的,如果不加::修飾符,當再有另外乙個名字空間中存在x變數,watch視窗將無法區分。
static全域性變數與普通的全域性變數
一 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結構中的堆是...
全域性變數與靜態全域性變數的異同
參考 1 生存週期 變數從定義到銷毀的時間範圍。存放在全域性資料區的變數的生存週期存在於整個程式執行期間,而存放在棧中的資料則隨著函式等的作用域結束導致出棧而銷毀,除了靜態變數之外的區域性變數都存放於棧中。2 作用域 變數的可見 域 塊作用域,函式作用域,類作用域,程式全域性作用域 3 static...
全域性變數不能放在標頭檔案其中
看網上各種說法說 變數的宣告和變數的定義,可是還是沒有講清楚什麼是宣告什麼是定義,假設說定義要分配記憶體。宣告不分配。這個誰都知道。剛我在vs2012中測試。按理說 int i。僅僅是宣告吧 可是我在乙個標頭檔案其中宣告 int i 然後兩個cpp檔案都呼叫這個.c檔案,出現了重定義錯誤。我改為 i...