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

2021-07-24 11:59:40 字數 778 閱讀 2401

1. header1.h中宣告全域性變數,header1.cpp中定義全域性變數

// header1.h

#ifndef header1_h_

#define header1_h_

extern int g_n;// 標頭檔案中必須加extern宣告全域性變數,不賦值

//int g_o;錯誤

//int g_o = 10;錯誤

//extern int g_o;錯誤

#endif

// header1.cpp

#include "header1.h"

int g_n = 100;// 定義時絕對不能再加extern了,不給g_n賦值則自動賦值0

//int g_n;// 也正確, g_n為0

2. header2.hpp中宣告定義全域性變數

// header2.hpp

#ifndef header2_hpp_

#define header2_hpp_

int g_m = 1;// 正確,在hpp檔案中定義了全域性變數

//int g_m;// 正確,自動初始化為0

//extern int g_m = 1;// 正確

//extern int g_m;// 錯誤,這只是宣告沒有定義,需要在某個cpp檔案中int g_m = ?;補上定義才正確

#endif

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

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

全域性變數的定義宣告

c 中定義全域性變數要注意的地方 yandaren 1220 chinaunix部落格 c 中定義全域性變數要注意的地方 在c 中定義全域性變數是應該盡量在.cpp檔案中定義,而不要在.h 檔案中 定義,定義好了之後,可以在.件中利用 extern關鍵字進行 宣告.如果在.件中定義的話,多層包含可能...

靜態全域性變數的宣告與定義

用static修飾的變數,在其所限定的作用域中只會有一分記憶體 1 在乙個函式內部 說明是乙個靜態區域性變數,不管這個函式被呼叫多少次,這個static修飾的變數只會有一分記憶體,也就是說當這個變數多次被修改,都是在上一次基礎上修改,不會從頭再來 2 在乙個檔案內部,函式外部 靜態全域性變數 該檔案...