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

文章讨论了在C语言编程中遇到的L6200E错误,该错误通常由于全局变量或函数在多个对象文件中重复定义导致。作者建议检查代码以确保没有重复定义,并提供了如何正确在不同C文件间共享全局变量的方法,即通过extern关键字在头文件中声明并在一个C文件中定义。文章还给出了一个例子,展示如何在1.c和2.c文件之间共享全局变量test的正确做法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@[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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值