哈喽,小伙伴,大家好,今天我来水一篇文章。害,也不算真的水吧,这次带大家深度剖析初次写扫雷游戏程序时还未接触到的知识点。废话不多说,直接进入正题
不知小伙伴们是否还记得当时我说过扫雷游戏我们是以多个文件的方式进行制作,为了能让大家更好的回忆起来,玩出了尘封许久的三张图
那么为什么要通过多个文件的方式写这个扫雷游戏呢?
多文件方式写程序可以让我们的思路更加清晰,至于说游戏做到一半突然不知道做到了哪一步。
那么如何通过多文件的方式写游戏或者说小程序呢?
首先是我们的主文件
主文件(1号文件)里面通常包含一个简单游戏的菜单以及一些主要的运行程序
创建方式:我们一开始学c语言创建时的方式
函数的头文件
为了方便称呼,我们将函数的主体文件称为2号文件,其头文件称之为2号.h文件
2号.h的文件中通常存放函数句子,无任何执行语句(也可以说2号.h文件是函数的转接器)
如图
那么为什么说2号.h文件如同转接器呢,仅通过这张图,我们并不能很明显的看出,因此我们来看一下扫雷游戏的图
从扫雷游戏的图中,我们可以看出
void Initboard(char arr[ROWS][COLS], int rows, int cols, char put);
void display(char arr[ROWS][COLS], int row, int col);
void SetMine(char arr[ROWS][COLS], int row, int col);
FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row,int col);
以及这些代码
#define ROW 9
#define COL 9
#pragma
#define ROWS ROW+2
#define COLS COL+2
#define EASY_COUNT 10//雷的个数
#include<stdlib.h>
#include<time.h>
#include<stdio.h>
都是我们在2号文件中所要执行的,如果说没有在这个头文件里头编译,那么效果其实和我们一开始学的c程序没有头文件——#include<stdio.h>是一样的。
那么如何将自己写的这个头文件包含在自己写的2号文件内呢?
如何创建一个全新的头文件
鼠标右击源文件,点击添加,点击新建项
在下面这一栏输入你所创建的函数名和后缀名,点击添加即可。
添加完成后,即可在里面写语句。
温馨提示,在头文件内写的句子除#define开头的句子及小部分句子外都要添加“;”
那么如何创建自己所要函数名的源文件呢
操作也是和创建头文件的方式一样,只是在写后缀名的时候要写成 .c(当然这也是取决于你所用的语言,如使用c++写的程序,后缀名就是 .cpp)
那么创建号函数的源文件后,我们应该在这个文件写什么以及如何包含自己创的头文件呢?
如图
头文件的包含:我们自己写的头文件需要用 " " 包含
那么这和<>包含有什么区别呢,别急这个一会给你讲清楚
那么我们来讲讲在函数文件里写什么,通过上面这张图,大家应该很清楚了,这个文件里头就是写执行的语句,如add函数,我需要它帮我算出两个数的和,并且返回两个数的和,因此只需要写return x+y;即可。
那么头文件使用 " "和<>到底有什么区别呢,以及什么时候用 " "什么时候用<>呢?
区别:自己所创建的头文件只能" ",无法使用<>,那么使用了<>包含了自己创建的头文件,发生的错误是咋样的呢?
大家请看
编译器会显示无法打开源文件,这是为什么呢?因为这个头文件是我们自己创的,不是编译器自带的。而stdio.h是编译器自带的。
那么 " "和<>包含头文件有什么区别呢?
区别:" "包含头文件时,编译器会在自己存放所有头文件的“库”里面查找一遍,这也就是为什么上图会出无法打开头文件"add.h"的原因,而像stdio.h这类编译器自带的头文件,若使用 " ",编译器则会在自己的“库”里头查找一翻,确定有这个头文件后再继续执行下面的语句,会浪费一些时间,因此我们通常会使用<>包含编译器自带的头文件,这样可以让编译器识别出这是自带的头文件,省去了查找头文件的时间,提高了程序运行的效率。
那么总结一下吧
本篇文章的内容重点在于如何创建函数文件、函数头文件、函数文件里写什么语句以及使用 " "和<>包含头文件的区别。
那么今天的内容就先到这了。喜欢我的文章就麻烦各位的小手给我点点关注,支持我一下,谢谢啦!