Q
c聲明和初始化
0
A
回答
0
基於汽車的這樣的解釋:
http://msdn.microsoft.com/en-us/library/6k3ybftz%28VS.80%29.aspx
它說,自變量是範圍有限,他們的地址是不恆定。由於全局變量既沒有這些屬性,全局變爲自動變量也沒有意義。
+2
這是一個C++參考,誰知道這些傢伙用不好的舊'auto'做了什麼:-) – 2010-06-22 06:31:03
1
C語言中'auto'的含義就是一個變量,它是一個局部變量。 所以說你想聲明一個局部變量爲全局變量是完全矛盾的。
我想你是在談論一個本地化的全球化。如果你想聲明一個變量,這個變量對你正在使用的.c文件是本地的,並且你不希望它在c文件之外被訪問,但是你希望它可以被所有的函數訪問文件,您應該將其聲明爲靜態變量,就像您對變量j所做的那樣。
因此你會有像在example.c如下:
static int i; //localised global within the file example.c
static int j; //not accessible outside the .c file, but accessible by all functions within this file
int main()
{
//do something with i or j here.
i = 0 ;
j = 1 ;
}
void checkFunction()
{
//you can also access j here.
j = j+ 5;
}
我想我要補充一點,有多種方法,您可以使用關鍵字static的變量。
的一個,你可能熟悉的是:
1) Declaring a variable static within a function - this ensures the variable retains its value between
function invocations.
The second one ...
2) Declaring a variable as static within a module (or a .c file) - this is what I have described
above. This ensures a variable is localised within that module or .c file, but it is global so that
it can be used by any of the functions defined in that particular file. Hence the name localised
global.
但是,它不會是.c文件外部訪問。
2
你爲什麼不試着在你的問題中編譯代碼片段?如果你有,現在你會知道它給出了一個編譯器錯誤。在海灣合作委員會:
foo.c:3: error: file-scope declaration of 'x' specifies 'auto'
所以我想你的問題的答案是「不,它不好」。
0
不,這是不可能的。原因是全局變量在調用main()之前已經在特定的數據段中(與函數內聲明的靜態變量一起)被初始化爲零。
相關問題
- 1. Vb.net聲明和初始化
- 2. C++:變量聲明初始化順序
- 3. 初始化在聲明
- 4. C,C++,C#,Java和Python中的聲明,定義,初始化
- 5. 聲明和初始化在java中
- 6. 聲明和初始化全局變量
- 7. Java - 對象聲明和初始化
- 8. Maya MEL變量聲明和初始化
- 9. 聲明和初始化結構變量
- 10. 聲明和初始化三維數組
- 11. _mainViewController在哪裏聲明和初始化?
- 12. 在C++中使用&&的聲明和初始化
- 13. C++,而內部聲明和初始化變量循環
- 14. C++變量聲明和初始化規則
- 15. C++如何聲明和初始化類中的向量
- 16. 初始化靜態final變量聲明與初始化在Application.OnCreate()
- 17. 變量初始化並聲明後可能尚未初始化
- 18. 構造函數聲明和初始化的初始化之間的區別
- 19. 聲明類實例及其初始化
- 20. 首選聲明/初始化方法
- 21. scala - 未初始化的變量聲明
- 22. 無法聲明/初始化CGPoint數組
- 23. 聲明中的事件初始化
- 24. (函數(){})()聲明/初始化JavaScript函數
- 25. 初始化課外數組聲明
- 26. Java數組初始化後聲明
- 27. 聲明實例類沒有實例化和初始化 - 澄清
- 28. 初始化和聲明對象和方法
- 29. 在C++初始化之前聲明一個對象
- 30. 在聲明之外初始化C數組?
您是否正在努力研究它是否合理,或者是否允許? – 2010-06-22 06:20:50