C 全域性變數

2021-07-29 12:24:01 字數 322 閱讀 6664

c++工程有以下幾個檔案:

標頭檔案:a.h,b.h

相應的cpp檔案:a.cpp(包含a.h),b.cpp(包含b.h)

以及其他一些相關的.h,.cpp檔案。

a中有類a,b中有類b。現在需要在b.cpp中使用a.cpp 類a中的乙個變數,且希望其是隨著a.cpp 類a的呼叫更新的值。

可按如下操作:

在a.h定義全域性變數g,讓b.h包含a.h。編譯時出錯,說重複定義了g。原因是可能其他多個cpp檔案也包含了a.h。

正確操作:

在a.cpp中定義全域性變數g,並在b.cpp中用extern宣告即可。

c 全域性變數 靜態全域性變數

全域性變數是靜態儲存方式,靜態全域性變數也是靜態儲存方式,這兩者在儲存方式上並無不同。區別 雖在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,靜態全域性變數在各個原始檔中都是有效的。靜態區域性變數則限制了其作用域,只在定義該變數的原始檔內有效,在同一源程式的其它原始檔中不能...

c全域性變數

c語言中全域性變數可以重複定義 include int g val int g val 1 int main void 執行結果 1 include int g val 2 int g val int main void 執行結果 2 include int g val 2 int g val 1 ...

C全域性變數

1 之前在標頭檔案裡定義了變數,如int a 3 執行顯示重定義,但其實程式裡其他地方並沒有再次定義。解決方案 專案 屬性 鏈結器 命令列 其它選項加入 force multiple 或者把此句放到main.c裡定義全域性變數也不出錯 2 在cpp裡定義了函式,但是沒有在標頭檔案裡宣告這個函式,也會...