想定義個全域性變數,其他檔案都可以使用,但是如果定義在.h檔案中,就容易出現重複定義的問題(在gcc中如果未初始化,不會出現重複定義的問題),具體該怎麼做呢,如下:
eg:乙個工程中有五個檔案,main.c first.c first.h second.c second.h
想在first.c 中定義個全域性變數,其他檔案都可使用
做法一(在first.c中定義一下,在其他想呼叫的檔案裡extern一下,與抱不包含標頭檔案無關):
first.h中
first.c中
#include 'firsr.h'
int a ;
....
second.c中
extern int a ;
....
main.c中
extern int a ;
....
注意extern後不要初始化了,初始化是定義,就不是宣告了,編譯器會報錯
做法二(在first.c中定義一下,在對應的標頭檔案裡extern一下,其他想呼叫此全域性變數的檔案呼叫一下此標頭檔案):
first.h中
extern int a ;
....
first.c中
#include 'firsr.h'
int a ;
....
second.c中
#include "first.h"
....
main.c中
#include "first.h"
....
全域性變數與模組化
某模組提供給其它模組呼叫的外部函式及資料需在.h 中檔案中冠以extern 關鍵字宣告 這句話在上面的例子中已經有體現,即某模組提供給其它模組呼叫的外部函式和全域性變數需在.h 中檔案中冠以extern 關鍵字宣告,下面重點說一下全域性變數的使用。使用模組化程式設計的乙個難點 相對於新手 就是全域性...
python跨檔案使用全域性變數
python 定義了全域性變數的特性,使用global 關鍵字修飾 global key word 但是他的一大缺陷就是只能本module 中也就是本檔案中使用,跳出這個module就不行。try 1 使用乙個更巨集觀的思路,全域性變數就用全域性載入的模組解決,很遺憾也是不行,file 1 glob...
Python跨檔案全域性變數
儘管某些書籍上總是說避免使用全域性變數,但是在實際的需求不斷變化中,往往定義乙個全域性變數是最可靠的方法,但是又必須要避免變數名覆蓋。python 中 global 關鍵字可以定義乙個變數為全域性變數,但是這個僅限於在乙個模組 py檔案 中呼叫全域性變數 我們知道python使用變數的時候是可以直接...