1樓:山東路雲
拿vc試啊,剛花了幾分鐘實測了下,不加static,不管是否初始化,都是在連結的時候報重定義錯誤,如果加了static, 不管是否初始化,編譯連結都沒問題,只是不同的原始檔佔用不同的記憶體,也就是說已經是兩個不同的static全域性變數了。
2樓:
可以,因這個不是語法錯誤,一般是邏輯錯誤!而這種錯誤是看程式設計人員要怎麼使用變數的!
3樓:周生
全域性變數
既然是全域性的,你定義兩個怎麼辦?
4樓:空雪夢見
編譯會通過
連結會失敗
5樓:
不使用static的時候,兩個不同的原始檔都可以正常編譯,但會出現連結錯誤,原因是有兩個地方存在相同的變數,導致編譯器無法識別應該使用哪一個。
另外,而使用static的時候,你所定義的static變數如果是區域性的話,編譯的時候編譯器會將其重新命名,其他檔案就不會使用到這個檔案的static變數了,這樣就使得只在本檔案內有效;如果是全域性的話,就全域性可見,共享同一塊記憶體空間。
具體細節請參考《c++反彙編與逆向分析》(錢林松),裡面講的很詳細。
如有疑問可以追加問題,歡迎採納,謝謝!
6樓:
可以啊!直接新增變數即可。
7樓:春秋幾許隨緣化
區域性的static變數(函式內部的)只是函式內部可見,全域性的static變數(函式外面的)應該是隻有當前原始檔可見
c語言問題 區域性變數能不能和全域性變數重名?
8樓:花落へべ若相惜
可以,只不過區域性變數可以覆蓋全域性的,就是在區域性變數的範圍內全域性變數不起作用
9樓:與子如初見
能,區域性會抄遮蔽全域性
。要用襲全域性變數,需要使用 "::" ;
區域性變數bai
可以與全域性變數同名du
,在函zhi數內引用這個變數時,會用到dao同名的區域性變數,而不會用到全域性變數。對於有些
編譯器而言,在同一個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義一個同名的區域性變數,而那
個區域性變數的作用域就在那個迴圈體內。
c原始檔不同字尾cccppccp的區別
參考了c primer plus第五版中文版 p8c 實現 源 的副檔名 unix c cc cxx c gnuc c cc cxx cpp c borland c cpp microsoft visual c cpp cxx cc 我們常用的vc2008上是cpp檔案,c也可以,其他倆我不太熟悉,...
C語言中的標頭檔案,原始檔到底是什麼東西
其實就是儲存你所寫的語句的地方,你寫完語句後需要用乙個軟體來開啟它,執行它.而這個軟體所能識別的檔案,就稱為該軟體的原始檔.如c語言常用的執行軟體 turbo c 能識別的檔案是以 c 為字尾名的檔案,所以你在寫完c語句後儲存的時候,就要儲存成 c 檔名 點c 以便turbo c能順利的開啟.c語言...
C的 cs檔案中怎麼引用 aspx檔案中定義的css或者 cs檔案中怎麼自己寶義css
首先,css檔案定義一般都是web前端處理,很少會涉及到後台cs檔案 aspx檔案中定義的css,可以放到單獨的css檔案中 至於你說的cs檔案處理css的,有種情況,也是後台cs檔案中定義css內容 字串,然後通過response.write 之類的方式,直接把流輸出到客戶端html頁面,上面說的...