关于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文件没有互相包含!
人气:168 ℃ 时间:2020-03-23 21:26:28
解答
1.不要在.h里面声明变量,而是在.c(.cpp)里面定义int mm=3;然后在A.h里面用extern int mm;2.extern不要赋值.ps:还没解决?回楼上,没用的,那个能防止重复include,但是不能解决这里的问题.头文件里面是不提倡也不应该定...
推荐
猜你喜欢
- 沿着家门口的路向前,第二个路口右转,直走5分钟,然后在红绿灯处左转进入向阳路即到 英文翻译
- 向氯化亚铁溶液中通入氯气的离子方程式是什么?
- 若1弧度的圆心角,所对的弦长等于2,则这圆心角所对的弧长等于多少 要详细过程 谢谢··
- 一道多项选择题有ABCDE五个备选项,要求从中选出2个或2个以上的选项为唯一正确选项.如果全屏猜测,猜对这道题的概率是多少?
- 两个数相加,如果和小于每个加数,那么这两个数()?
- We Chinese have out traditianal way to celebrate the Spring Festival.为什么We Chinese 可以放在一起
- Do you need about ten minutes ____your work
- 送杜十四之江南 回答下列问题 荆吴相接水为乡,君去春江正渺茫.日暮征帆何处泊?天涯一望断人肠.