如何從用C另一個文件訪問一個靜態變量? 由於靜態變量具有文件範圍,我認爲我們無法在文件外訪問它。但我仍然覺得可能有一些技巧或辦法可以做到這一點。
回答
在聲明中使用extern關鍵字指定該變量來自另一個文件(外部鏈接)。將靜態關鍵字放在原始定義中。
外部與內部連接的東西被解釋爲in this article。
嗯。什麼?一個既有內部鏈接又有外部鏈接的變量? –
我澄清了聲明與定義部分。 – Thorsten79
現在,您的答案在技術上是正確的,但不幸的是,並沒有回答這個問題。這個問題本身並不是那麼好。 –
你只能間接地做到這一點,例如,如果包含靜態變量的文件範圍內的函數傳遞給它一個指針。
我不認爲有一個簡單的方法。如果你可以用靜態變量更改文件,你可以這樣做:
static int hiddenVar; // The static var you want to get at
// A new function you write
int * getHiddenVar() {
return &hiddenVar;
}
不過,當然,如果你可以改變文件,你剛落static關鍵字。
此外,我懷疑這有幫助,但在FreeBSD中編寫內核模塊時,我不得不這樣做。我用了一個技巧來調用內核的鏈接器函數來查找靜態函數的地址。我懷疑你可以在普通的C程序中做到這一點。
- 1. 試圖訪問另一個靜態變量的靜態變量
- 2. 從java中的另一個類訪問靜態變量
- 3. 從一個類訪問靜態變量到另一個類
- 4. 從另一個文件訪問變量
- 5. 如何訪問另一個程序的靜態變量
- 6. 如何從ios中的另一個nib文件訪問變量
- 7. C++如何訪問另一個類中的私有靜態變量
- 8. 從C++中的靜態方法訪問非靜態類變量
- 9. 從另一個文件在C++中訪問extern變量
- 10. 靜態變量不能從另一個類訪問
- 11. 從另一個類訪問非靜態變量
- 12. 從另一個類訪問靜態變量
- 13. 從另一個SWF文件訪問SWF文件中的變量
- 14. 目標C從另一個文件訪問的全局變量
- 15. PHP:引用靜態變量中的另一個靜態變量
- 16. 在C++中訪問靜態類變量?
- 17. 如何從另一個php文件訪問變量
- 18. 從另一個組件訪問變量
- 19. 從另一個訪問組件變量
- 20. 從c中的另一個文件更新靜態全局變量
- 21. 訪問另一個類的靜態變量
- 22. 無法訪問另一個包類的靜態變量
- 23. objective-c:如何從另一個類訪問變量或數組?
- 24. 從另一個類的訪問變量
- 25. 從一個組件到另一個組件的訪問變量
- 26. 如何訪問另一個類的靜態成員函數中的私有靜態變量?
- 27. 我可以通過指針從另一個文件訪問文件的靜態變量嗎?
- 28. 訪問靜態變量主
- 29. 靜態變量訪問
- 30. 如何用另一個靜態變量初始化靜態變量?
你爲什麼想這麼做? – 2010-02-09 12:20:58
什麼@尼爾說,這是一個重複:http://stackoverflow.com/questions/1973162 –