关于multiple defination of (多重定义 )的错误?1、若是在 A.h 中声明和定义一个int mm=3.但若是在B.c 、C.c 和D.c中都包括了A.h(#include "A.h")编译的时候不会有错可是在链接时却会出现许多multiple defination of (多重定义 )的错误!这是怎么回事呢?如何解决呢?2、若是在 A.c 中声明和定义一个int mm=3.但若是B.c 、C.c 和D.c中都extern int mm=3,编译的时候不会有错可是在链接时也会出现许多multiple defination of (多重定义 )的错误!这时候出现的错误和上面的错误应该是一样的吧,如何解决呢?有可能是和我的编码规范有关吧?一个全局变量的声明 和定义如何写才好呢,以便让其他文件可以方便的使用它?几个.c文件没有互相包含!

问题描述:

关于multiple defination of (多重定义 )的错误?
1、若是在 A.h 中声明和定义一个int mm=3.
但若是在B.c 、C.c 和D.c中都包括了A.h(#include "A.h")
编译的时候不会有错可是在链接时却会出现许多multiple defination of (多重定义 )的错误!这是怎么回事呢?如何解决呢?
2、若是在 A.c 中声明和定义一个int mm=3.
但若是B.c 、C.c 和D.c中都extern int mm=3,编译的时候不会有错可是在链接时也会出现许多multiple defination of (多重定义 )的错误!这时候出现的错误和上面的错误应该是一样的吧,如何解决呢?
有可能是和我的编码规范有关吧?一个全局变量的声明 和定义如何写才好呢,以便让其他文件可以方便的使用它?
几个.c文件没有互相包含!

1.不要在.h里面声明变量,而是在.c(.cpp)里面定义int mm=3;然后在A.h里面用extern int mm;2.extern不要赋值.ps:还没解决?回楼上,没用的,那个能防止重复include,但是不能解决这里的问题.头文件里面是不提倡也不应该定...