定义语句放在头文件可能会产生重定义问题,所以尽量定义语句不要放在头文件中。

  多个不同文件引用同一个头文件,或者同一个文件多次引用一个头文件,就可能会产生重定义问题。因为每次包含某个头文件的时候,相当于将该文件下的局部变量或者内联函数进行了全局化。因此,多次包含同一个头文件就可能会产生重定义问题;

出现问题的代码编号可能有C2084,函数" "已有主体以及C2374,重定义;多次初始化;如果需要全局引用的变量(其他文件也使用),则必须添加extern关键字,且头文字只能放声明,不能有定义;

解决方法也很简单,添加头文件保护符就行:

#ifndef tmp_H
#define tmp_H/*代码在这里面写,定义啥的*/#endif tmp_H

【C++基础】头文件定义问题导致的重定义问题相关推荐

  1. 第二篇:浅谈自定义头文件可能导致的重定义问题

    前言 总看到一些地方说定义语句别放在头文件中,因为会引起重定义.但具体编程中,却发现有些定义又不得不放在头文件中. 这可如何是好?基于对这个问题的思考,有了这篇随笔. 重定义产生的情况 情况一:多个源 ...

  2. c语言万能头,C++万能库头文件在vs中的安装步骤(图文)

    前言 C++万能库头文件在vs2019中的安装 一.C++万能库是什么? 1.C++万能库的定义:简而言之,就是一条语句代替了多条语句,包含了目前c++所包含的所有头文件 2.C++万能库的写法:#i ...

  3. C++万能库头文件在vs中的安装

    前言 C++万能库头文件在vs2019中的安装 一.C++万能库是什么? 1.C++万能库的定义:简而言之,就是一条语句代替了多条语句,包含了目前c++所包含的所有头文件 2.C++万能库的写法:#i ...

  4. C语言编程规范 — 头文件、函数

    0 编码规范说明 0.1 前言 为了提高产品或项目代码质量,软件开发人员编写出简洁.可靠.可维护.可测试.高效.可移植的代码,树立良好的编程规范是非常有必要的,良好的编程规范能提高编程效率,规避很多编 ...

  5. C语言头文件 “ 细节 ”

    很多事不深入以为自己懂了,但真正用到项目上,才发现了问题.曾以为自己写C语言已经轻车熟路了,特别是对软件文件的工程管理上,因为心里对自己的代码编写风格还是有自信的.(毕竟刚毕业时老大对我最初的训练就是 ...

  6. C语言头文件互锁和包含问题

    正文 大家好,我是bug菌! 今天带来的主要内容是关于头文件的那些事,或许头文件并不是那么起眼,大部分人在编程中对头文件的组织并没有形成一定的设计思路,虽然使用了一些预编译在一定程度上能够减少重复包含 ...

  7. /usr/include/c++/7/bits中头文件被破坏/环境破坏

    今天因为修改了bits中的头文件,导致catkin_make一直失败,一直有各种各样奇奇怪怪的错误 报错1: 报错2: 解决方法:在另一台ubuntu系统下找到相同的文件 cp过来 我的是unique ...

  8. C语言中头文件包含的处理原则

    很多事不深入以为自己懂了,但真正用到项目上,才发现了问题.曾以为自己写C语言已经轻车熟路了,特别是对软件文件的工程管理上,因为心里对自己的代码编写风格还是有自信的.(毕竟刚毕业时老大对我最初的训练就是 ...

  9. C++为啥最好不要再头文件里头引入头文件——编程小总结(二)

    一.为啥? 在C++中,头文件是用来声明函数.类.变量等的地方,通常会包含一些常量.宏定义.类型定义.函数声明等内容.头文件可以被其他源文件或头文件包含,以便在不同的文件中共享声明和定义. 然而,在头 ...

最新文章

  1. linux shell读取文件
  2. 题目1168:字符串的查找删除
  3. python pytest setupclass_简单了解pytest测试框架setup和tearDown
  4. freemaker模板引擎使用详解
  5. mysql 代码怎么优化_Mysql性能优化
  6. 牛客 13822 Keep In Line(枚举与暴力、Python)
  7. IOS的一些文件操作。(沙箱) 在Documents目录下创建文件
  8. java操作redis并发_使用Redis incr解决并发问题的操作
  9. python 北京大学陈斌教授_【慕课】Python 语言基础与应用(第2次开课)
  10. iOS 无证书真机调试
  11. C语言程序书写中 每行必须有分号,石家庄铁道大学C语言程序设计习题集.pdf
  12. 关于元素水平垂直居中的那些事?
  13. 看咪蒙真的有那么low吗?
  14. 腾讯云服务器安装redis、mysql
  15. 2021-07-17 随笔
  16. 原始股的股份怎么进行分红
  17. 逍遥android模拟器设置,逍遥安卓模拟器更改分辨率的具体操作方法
  18. ios客户端安全性问题分析及处理方式
  19. 你为什么会选择做程序员?
  20. C++里消除Wunused

热门文章

  1. 东华大学计算机专业分数线,2019年东华大学各专业录取分数线
  2. unity中移动部件靠近时触发动画,模型替换特效演示
  3. python剪刀石头布小游戏_python小游戏(剪刀石头布)
  4. SRS云服务器:起步、购买和入门
  5. checkbox 实现互斥选择
  6. 打开Adobe Premiere Pro提示系统错误
  7. (转)手机屏幕VGA QVGA HVGA WVGA区别
  8. zenmap使用方法
  9. linux系统中不存在 基本文件类型,Linux系统中不存在以下哪个基本文件类型( )
  10. 【转】富士通磁共振无线充电技术,几米外可充电