CC++语言如何避免全局变量重复定义的解决策略?
- 内容介绍
- 相关推荐
本文共计952个文字,预计阅读时间需要4分钟。
前言:在C语言中,使用`extern`关键字来定义全局变量时,我们需要在`.h`头文件和`.c`源文件中重复定义,这种重复定义可能会导致编译错误。今天,我在整理自己的代码时,发现了自己编写的一些代码片段。
+
前言
在C语言中使用extern 关键字来定义全局变量的时候,我们需要在.h文件和.c文件中重复定义,这种重复,导致了出错几率的增加。
今天,在整理自己的代码的时候,考虑到我写的代码从一至终都是在一个cpp文件里面。于是,想把自己的代码中的各个模块分离开来,以便更好地阅读和管理。
遇到的问题
我的做法是:
- 宏定义、结构体定义、函数声明以及全局变量定义放到一个head.h头文件中
- 函数的定义放到head.cpp中
- main函数放到main.cpp中
然而却报错了,提示xxx变量在*.obj文件中已定义
问题出现的原因
为什么会出现这种情况呢?
- 首先单个文件的编译是独立的。在head.cpp编译到head.obj,main.cpp编译到main.obj。
本文共计952个文字,预计阅读时间需要4分钟。
前言:在C语言中,使用`extern`关键字来定义全局变量时,我们需要在`.h`头文件和`.c`源文件中重复定义,这种重复定义可能会导致编译错误。今天,我在整理自己的代码时,发现了自己编写的一些代码片段。
+
前言
在C语言中使用extern 关键字来定义全局变量的时候,我们需要在.h文件和.c文件中重复定义,这种重复,导致了出错几率的增加。
今天,在整理自己的代码的时候,考虑到我写的代码从一至终都是在一个cpp文件里面。于是,想把自己的代码中的各个模块分离开来,以便更好地阅读和管理。
遇到的问题
我的做法是:
- 宏定义、结构体定义、函数声明以及全局变量定义放到一个head.h头文件中
- 函数的定义放到head.cpp中
- main函数放到main.cpp中
然而却报错了,提示xxx变量在*.obj文件中已定义
问题出现的原因
为什么会出现这种情况呢?
- 首先单个文件的编译是独立的。在head.cpp编译到head.obj,main.cpp编译到main.obj。

