我程序寫得不多,自然而然就把所有東西寫在一個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 賦值了·····
去掉賦值語句,編譯通過···啊哈哈