我程序写得不多,自然而然就把所有东西写在一个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 赋值了·····
去掉赋值语句,编译通过···啊哈哈