多个c文件调用一个全局变量问题

@[TOC]( Error: L6200E: Symbol XXXX multiply defined (by aaaa.o and bbbb.o).)

错误由来

我想实现多个c文件调用同一个全局变量,因为代码编写问题出现此错误。

错误报告
报错窗口

错误原因分析

1.变量或函数重复定义

上百度和csdn搜了一下,大家都说是重复定义的问题,但是我没有发现我有重复定义。为了大家方便查询自己是否重复定义可以按以下步骤进行查询。

  1. ctrl+f
  2. 勾选择Current Project,因为这样才能找到整个工程的重定义在这里插入图片描述
  3. 点击Find Next查找是否工程中有重复定义

2.不同c文件调用同一个变量代码编写不对

因为C语言学的不是很好,在遇到多个文件调用同一个全局变量的时候写的不对出现了这个问题。那具体要怎么实现多个c文件调用同一个变量呢??比如说我有两个c文件,分别为1.c和2.c,在2.c这个c文件里面有一个全局变量test,我要怎么在1.c去调用它呢?

2.c

#include<2.h>

int test=0;  定义一个全局变量

int add(value){
	value++;
	return value;
}

2.h

#ifndef __2_H
#define __2_H

#include <stdio.h>
extern int test;
int add(int value)

#endif

在1.c文件中调用全局变量test
1.c

#include "1.h"
#include "2.h"  #包含2.h头文件

//接下来就可以对test变量进行操作了

1.h

#ifndef __1_H
#define __1_H
//  #include "2.h"  也可以在1.h中直接包含2.h头文件
#endif
posted @ 2023-04-29 14:29  SuperCodeCat  阅读(17)  评论(0)    收藏  举报  来源