`
java-mans
  • 浏览: 11392088 次
文章分类
社区版块
存档分类
最新评论

[C语言项目]防止头文件和全局变量重复定义

 
阅读更多

昨天下午将全局变量定义在H文件中导致链接时提示变量在多个obj文件内重复。

解决办法如下:

将变量移入C文件中进行定义,然后在H文件中加入extern在变量之前。

这样当其它C文件引用该全局变量时就会去链接这个变量符号而不是重新生成。


另附防止H文件被重复包含的处理方法:

#ifndef _H文件名_H_

#define_H文件名_H_

//H文件内容

#endif

分享到:
评论

相关推荐

    C/C++语言中全局变量重复定义问题的解决方法

    宏定义、结构体定义、函数声明以及全局变量定义放到一个head.h头文件中 函数的定义放到head.cpp中 main函数放到main.cpp中 然而却报错了,提示xxx变量在*.obj文件中已定义 问题出现的原因 为什么会出现这种...

    c语言中头文件的建立与使用-函数、全局变量、全局数组

    头文件中一般放一些重复使用的代码,例如函数声明,变量声明,常数定义,宏的定义等等。当使用#i nclude语句将头文件引用时,相当于将头文件中所有内容,复制到#i nclude处。为了避免因为重复引用而导致的编译错误...

    C语言面试题大汇总之华为面试题:1、局部变量能否和全局变量重名;2、如何引用一个已经定义过的全局变量;3、全局变量可不可以定义在可被多个.C文件包含的头文件中 为什么;4、语句for( ;1 ;)有什么问题 它是什么意思……

    C语言面试题大汇总之华为面试题:1、局部变量能否和全局变量重名;2、如何引用一个已经定义过的全局变量;3、全局变量可不可以定义在可被多个.C文件包含的头文件中 为什么;4、语句for( ;1 ;)有什么问题 它是什么...

    c语言全局变量和局部变量问题及解决汇总

    1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用”::” 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,...

    全局 变量 extern

    不能在头文件.h里面定义全局变量,如果头文件中可以定义全局变量,那么每个包含该头文件的文件里都会有该全局变量的定义.因为C语言的include是直接将文件嵌入到include这个地方的. ...

    C语言嵌入式典试题全部在这里

    C语言嵌入式常见经典试题局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都...

    深入uCOS中全局变量的使用详解

    阅读邵贝贝翻译的《uC/OS-II》一书,发现里面用了一种非常巧妙的全局变量定义的方法,下面就自己的理解做一下记录,算是自己的笔记。也写出来和大家共同学习。 uC/OS-II中定义了一全局使用的头文件includes.h。这个...

    C语言笔试大全C语言笔试大全

    1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在...

    C语言程序设计标准教程

     现代格式在函数定义和函数说明(后面将要介绍)时, 给出了形式参数及其类型,在编译时易于对它们进行查错, 从而保证了函数说明和定义的一致性。例1.3即采用了这种现代格式。 在max函数体中的return语句是把a(或b)...

    c和h的联系

    C文件就是C语言系列的源文件,而H文件则是C语言的头文件,即C系列中存放函数和全局变量的文件,因为C中的函数是被封装起来的,即无法看到其代码。 子程序不要定义在*.h中。函数定义要放在*.c中,而*.h只做声明....

    C语言讲义.doc

    3.1.5 全局变量 66 3.1.6 外部变量与extern关键字 66 3.1.7 全局函数和静态函数 66 3.2 内存四区 66 3.2.1 代码区 67 3.2.2 静态区 67 3.2.3 栈区 67 3.2.4 栈溢出 68 3.2.5 堆区 68 3.3 堆的分配和释放 70 3.3.1 ...

    C语言面试题总汇华为

    3、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋...

    C语言大纲及课件

    全局变量、局部变量与静态变量的存储属性及作用域;内部函数和外部函数的区别和应用。  理解:函数的概念及其在结构程序设计中的作用;函数的递归调用技术;函数的嵌套调用技术;用函数进行结构程序设计的方法和...

    采用类似GPIO_TypeDef的方式,定义Led_TypeDef结构体类型,用结构体类型设置led参数,用固定占空比闪烁

    1.内容概要: 采用类似GPIO_TypeDef的方式,定义Led_TypeDef结构体类型,用结构体类型设置led参数,用固定占空比闪烁; ...掌握静态全局变量,全局变量使用方法 4. 其他说明: 更加详细说明见博客

    用C语言开发小型数据库管理系统.txt

    程序设计成绩排序名:cxsj.dat(文本文件) 二、宏定义、记录结构和全局变量 #define NULL 0 #define LEN sizof(STD) typedef struct { char xh[12]; /*学号*/ char xm[12]; /*姓名*/ char sxcj[5]; /*数学成绩*/ ...

    按键检测代码,利用定时器实现按键防抖,全程无阻塞方式。

    1.内容概要: 按键检测代码,利用定时器实现按键防抖,全程无阻塞方式。 2. 使用说明: 通过修改宏定义可以修改开关时间;...掌握静态全局变量,全局变量使用方法 4. 其他说明: 详情见博客: http://t.csdn.cn/DP43e

    你必须知道的495个C语言问题

    6.22 如何在一个文件中判断声明为extern的数组的大小(例如,数组定义和大小在另一个文件中)?sizeof操作符似乎不行。 6.23 sizeof返回的大小是以字节计算的,怎样才能判断数组中有多少个元素呢? 第7章 内存...

Global site tag (gtag.js) - Google Analytics