飞机大战的代码问题

本文探讨了C++编程中头文件重复引入导致的错误,强调了不应在头文件中定义变量的原因,并提供了解决多字节字符集问题的方案。同时,分析了头文件包含顺序对程序编译的影响,特别是在使用特定库函数时的操作系统头文件优先级问题。

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

飞机大战的代码问题


一.文件分布出现的问题:

  1. 头文件不要重复引入,这里我出现的问题主要是:自行定义的头文件 (在同一个项目中的多个文件中重复引入了)以下报错的情况;

代码:(说明一下,这里为了更好说明情况,这里我用图片的形式表示出来)

1.第一个文件代码:(自行定义的头文件)

在这里插入图片描述

2.第二个代码:(main 函数所在文件代码)

在这里插入图片描述

3.第三个代码文件(测试)

在这里插入图片描述


注意:
  1. 从上述代码图中我们可以看到我多次重复引入的自行定义的头文件 #include"TestHead.h" ,该头文件中我定义了一个全局变量 int num = 10 , 以及一个函数的声明在其中,调用函数Add 打印出 num

结果(报错):

原因分析:
  1. 我在头文件中定义的一个 int num = 9 ;引入该头文件,会再次定义该 变量所以出现了重复定义的字符的错误 ,详细原因:预处理的逻辑中体现:
  2. 所以我们不要在头文件中。定义变量,可以是函数的声明,结构体的创建,枚举,共用体,常量,
  3. 传变量时尽可能的使用指针接受变量,(也就是传地址的方式),方便,功能齐全,可以改变所传的值

二.字符集(使用多字节字符集)

  1. 因为头文件的 #include<easyx.h> 图形处理的头文件的一些情况,原因(使用其中的一些函数会报错)。具体是为什么我也不太清楚,可能是编码集的问题吧. 如图:

在这里插入图片描述


虽然我不知道原因但是我知道解决方案:把项目的字节集–》改为 多字节字符集 具体步骤如下图:

解决方案:

在这里插入图片描述


在这里插入图片描述

三.头文件上的顺序问题的错误:

为了更好的说明情况我还是使用图的方式:如图:

在这里插入图片描述


我i将图中标红的两个头文件的位置,互换了一下就给了我一大坨(这里允许我使用“坨”这词)的错误;

请看下图:

在这里插入图片描述

我只截取了一小部分,真的是一小部分很小很小的一部分,太多了,

分析原因:

  1. 说句实话我也不知道,为什么,我个人理解是:因为:头文件 #include<mmsystem.h> 打开音乐的头文件,而音乐的打开是要通过操作系统这个媒介实现,所以要先交互操作系统的头文件 #include<windows.h> 再使用音乐的头文件 #include<mmsystem.h> ,才能打开音乐:不过有的时候又可以,这我又不太清楚了,综上所述是我个人的理解:所以要把它们的位置交换一下就可以了,把操作系统的头文件 #include<windows.h> 放到音乐的头文件 #include<mmsystem.h> 的前面就可以了.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值