代码编织梦想

一、头文件内容:

1.头文件内容中应该只放变量和函数声明,而不能放它们的定义。因为一个头文件实际上会被引入到多个不同的.cpp文件中,并且它们都会被编译。如果放了定义,那么也会在多个文件中出现一个对于一个变量或函数的定义,纵然这些定义相同,但是对于编译器来说,这样做是不合法的。比如头文件可以写:extern int a;和void f()的声明,但不能放int a;和void f(){}的定义。

2.头文件可以写const对象和static对象的定义。因为全局的const和static对象默认是没有extern的声明的,所以只在当前文件中有效,而且这些.cpp问价的该对象都是从一个头文件中 包含进去的。

二、头文件(.h)与源文件(.cpp)链接原理:

在用visual studio 2022学数据结构时,我发现头文件的内容(.h文件)和源文件内容(.cpp文件)是内容是一样的,都是C++的源代码。但是头文件不用被编译,我们把所有的函数声明全部放在一个头文件中,当某一个.cpp源文件需要它们时,它们就可以通过"#include"包含进这个.cpp文件中,从而把他们的内容合并到.cpp文件中,当.cpp文件被编译的时候,这些被包含的.h文件的作用便发挥了。

举个例子,假设所有函数只有两个,f1和f2,那么我们把它们的定义放在math.cpp里:

/* math.cpp */
double f1()
{
    //do something here....
    return;
}
double f2(double a)
{
    //do something here...
    return a * a;
}
/* end of math.cpp */

并把“这些”函数的声明放在一个头文件math.h中:
/* **math.h** */
double f1();
double f2(double);
/* end of math.h */

在另一个文件main.cpp中,我要调用这两个函数,那么就只需要把头文件包含进来:
/* main.cpp */
#include "math.h"//include的作用是把它后面所写的那个文件的内容,完完整整地、一字不改地包含到当前文件中来。
main()
{
    int number1 = f1();
    int number2 = f2(number1);
}
/* end of main.cpp */

这 样,便是一个完整的程序了。需要注意的是,.h文件要在编译器找得到的地方(比如跟main.cpp在一个目录下)。 main.cpp和math.cpp都可以分别通过编译,生成main.o和math.o,然后再把这两个目标文件进行链接,程序就可以运行了。

最后,本人大三,才开始好好编程,心累。大一大二的学妹学弟要是能看到这,请务必一定要好好学习,好好敲代码,老师教的不懂,请上b站,做一个务实的码农!!!

windows下c/c++编程实现 贪吃蛇简易版-爱代码爱编程

简单地实现场景、蛇的移动、食物、得分以及游戏开始、结束。 实现 头文件 stdlib.h iostream windows.h time.h conio.h vector 先定义一个位置函数,主要通过位置函数来对蛇

c++ 贪吃蛇代码(简易版)_daixie544048040的博客-爱代码爱编程_简单贪吃蛇代码

```cpp # include <stdio.h> # include <string.h> # include <windows.h> # include <stdlib.h> # include <conio.h> # include <time

简易的万年历查询系统(c++版本)_nothing_f的博客-爱代码爱编程

要求: 本人是在VS2017中完成该代码。 注:以下代码并非全部原创,本人在一定程度上参考了百度文库中一篇文章的代码,原址如下 https://wenku.baidu.com/view/3af97dd580eb6294d

用C/C++写一个简易的钢琴小程序-爱代码爱编程

0.缘由 C语言课期末大作业。由于是开放性的作业,随便写着玩的,就写了这么一个玩意。虽然高中的时候接触过一些音乐或者音频软件,像Au,FLstudio,Minecraft之类的,但实际上对音乐方面的还算是一窍不通,其原因是不同于许多同龄人,在小的时候并没有被父母逼着去学一门乐器,也就没有接受过正规的乐理方面的教育。如果本文或文中代码里出现一些低级的音乐常

使用C++手写栈 - Stack-爱代码爱编程

使用C++手写栈 在(一)中,对动态数组进行了简单的封装,实现了简易Vector, 这次不妨就来实际用一下我们的Vector。 无论是否学过数据结构,你大概都会听说过"栈",栈最主要也是最重要的特性就是FILO – 先进后出,或者说,满足先进后出的就是栈(Stack),所以Stack与我们说的vector、list、map等不同,Stack只定义了一组

简易计算器项目(C/C++版)-爱代码爱编程

大一暑假实训项目总结(简易计算器C++版) 因为疫情原因,我们这一届的实训就被放在了暑假的尾声进行,也就是线上进行。也是因为快开学了,便于开学后进行项目交流和答辩。 我们组还是和大一上学期一样,那五个老同志。只不过项目不一样了,上次是学生成绩管理系统,而这次是简易计算器的实现。 我们这次的实训项目也确实比上次难一点,因为我们是从网上找到代码,但是又跟它有

C++练手小游戏2——简易版flappy bird-爱代码爱编程

概述 程序运行时,通过空格键进行调整小球的上下跳跃,而障碍物的高度、宽度和速度均是随机的,每通过一个障碍物分数加1。但碰撞后游戏会暂停,直到按下“r”后游戏重新开始,分数也会同步清零。 实现效果和涉及的知识 本例子我们将模拟简易版的flappy bird。 例子中我们会学习EasyX图形库的文本相关库函数、随机数的生成和函数等。 文件结构 这个例

贪吃蛇简易版(C++)-爱代码爱编程

导航         下一篇:贪吃蛇升级版(C++) 目录 一. 贪吃蛇简易版的实现 1. 贪吃蛇如何存储? 2. 贪吃蛇如何移动? 3. 食物如何生成? 4. 如何判断游戏结束? 二. 贪吃蛇简易版的优化 1. 添加功能按键 2. BUG的修复 3. 最终代码 三. 贪吃蛇简易版的重构 1. 第一次重构 2. 第二次重构 一

【UE4 C++】 实现简易背包-爱代码爱编程

效果展示 按E拾取之后,物品会出现在背包中,我们可以按I进行背包的开关。 对点击Use会提示你使用了该物品。 点击Drop之后可以将物品丢弃 左键可以移动物品 移动到另一个物品的时候会融合成一个新的物体: 然后丢掉~ (直接把我的方块弹飞了) 实现的整体思路 将可拾取物体的一些基本功能用C++实现出来,然后添加一个识别物体的UI,提示用E拾取

C++简易模拟测评程序-爱代码爱编程

Hihi,大家好,这里是第一次发博客的computer! 今天打算把自己写的一个简单的测评程序发出来 (虽然通俗一点就是对拍的复杂版) 但不管怎么样,它都比普通对拍高级多了!(不知道哪来的自信) Anyway,那我们开始! Introduction 首先我们要搞清楚我们要实现的功能: 1.实现代码编译及编译是否成功(system函数就可以了)

图书管理系统(c++)简易版!-爱代码爱编程

包括管理员端和学生端,可以对图书进行借阅,归还,还可以修改账号登陆密码等 #include<iostream> #include<string> #include<string.h> #include<cstdio> #include<conio.h> #include<fstream&g

vs2010 c++项目创建简易教程-爱代码爱编程

VS2010 C++输出hello world Visual Studio是微软公司推出的开发环境,是目前流行的Windows平台应用程序开发环境。下面通过“hello world”程序介绍如何在Microsoft Visual Studio2010(VS2010)【更高版本的如小括号提示】集成开发环境中创建一个简单的C++程序。 1、创建项目与源文件

用c++写一个类似gin的简易版web框架(cweb)_想飞的的博客-爱代码爱编程

项目链接 项目链接 项目架构 目前项目包含四个子目录,其中http定义了http消息的解析封装和响应逻辑,tcpserver负责底层的网络数据收发,jsoncpp负责json数据的解析封装,log是项目日志(这一部分暂时没写)。 使用方法 导入头文件"cin.h",与gin使用方法基本一致 #include <iostream>

教你如何用c++写2d版我的世界(1)_ 瑞的博客-爱代码爱编程

Hello everyone!想必大家有时肯定会突然冒出想自己写游戏的想法,可却又不知道怎么写,从今天开始小编就教大家如何用c++编写一个2D版我的世界(如有错误,请大佬多多指出,后续我会修改,大佬勿喷ヾ(≧▽≦*)o) 1. 标题界面 一个游戏都有一个合格的标题界面,但先别急,我们先来学两个函数——Sleep和system函数 #include&l

c/c++制作简易版贪吃蛇游戏_彼此沉默的博客-爱代码爱编程

文章目录 C/C++制作简易版贪吃蛇游戏一、开发环境二、设计逻辑三、代码块3.1 使用initgraph()函数3.2定义蛇和食物的结构体3.3随机产生食物的坐标以及定义初始化的蛇的数据3.3绘制对象3.

c++实现扫雷(最简单版)_c++扫雷-爱代码爱编程

        大家好,这几天心血来潮想做一个扫雷程序,于是花费我20分钟时间做了一个,这可能是目前最简单的一个了(也是最简陋的),新手容易理解。 直接上代码 #include<cstdio> #include<windows.h> #include<cstdlib> #include<ctime> us