初次將一個C文件 拆開寫 遇到的 蛋疼問題"multiple definition of" 錯誤

我程序寫得不多,自然而然就把所有東西寫在一個C文件裏面,這也是很多新手的弊病吧。在一次開發中,實在難以閱讀代碼了,激起了我規範化代碼的決心。

萬事開頭難,一下就碰到了"multiple definition of***的錯誤。進過反覆的查閱資料,求的原因:

global.h中寫有所有的全局變量及其初始化值 和函數聲明

在編譯的時候就會出錯:
first defined here 
multiple definition of

原因是因爲在多次包含global.h時重複定義了變量和函數。


於是我加入防止多次重複定義的宏判斷符號:

#ifndef  GLOBAL
#define GLOBAL
XXXXX
XXXXX
#endif
記住:在ifndef時一定要在第一行,前邊不要有任何的註釋或語句。

但是編譯時,仍然提示相同錯誤。

查看代碼:

int Flag=0;		//發送標誌	0 命令標誌  1 文件標誌
typedef struct sockaddr SA;

其實:雖然用了ifndef define endif 也不可以避免在多個不想幹文件裏面包含該頭文件所產生的錯誤

因爲我  在頭文件裏對 Flag 賦值了·····

去掉賦值語句,編譯通過···啊哈哈

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章