c 語言 全域性變數 可宣告問題

2021-08-02 06:53:26 字數 388 閱讀 6677

如果static和extern都沒有,表示定義乙個全域性變數,其作用域限制在從定義開始到當前檔案結尾。

static的作用是將全域性變數的作用域限制在從定義開始到當前檔案結尾,且其他檔案不可以用extern來讓這個變數可見。

extern的作用是宣告乙個已經在別處定義了的全域性變數,它不是重新定義新的全域性變數,而是起到擴充套件全域性變數作用域的作用。

a.c:

int i; //定義i變數,且可用extern去擴充套件它的範圍

static int j; //定義j變數,用static限定j只能在本檔案內使用

b.cextern int i; //正確,將i的作用域延伸到b.c中

extern int j; //錯誤,因為j在定義時被static限定

全域性變數宣告

首先在.h標頭檔案中宣告全域性變數,用extern宣告,宣告時不能賦值。pragma once ifndef beijing h define beijing h include include include opencv2 core core.hpp extern std vectorug ex...

C語言全域性變數定義與宣告技巧

在實際的程式設計中,全域性變數對我們程式設計來說既是喜又是淚,雖然說專案中盡量避免使用全域性變數,但總有些時候不得不使用它,並且可能使用得不少,各個模組可能有含有或多或少的幾個全域性變數,而當別的模組需要引用的時候,就必須extern它,造成你定義了一遍又宣告了一遍,這樣就稍顯得麻煩。下面介紹一種全...

C語言 全域性變數的定義與宣告

c語言中全域性變數的定義與宣告困擾著許多c語言初學者。本文講述了全域性變數定義與宣告的用法,而且本為也將闡述這種用法的內在原理。我們先從兩個錯誤例子引入,以下兩個例程都在vc6.0平台上測試。兩種錯誤例程 1.unresolved external symbol 例子包含兩個c檔案 test.c 和...