小伙伴们,大家好。这次继续上次的剖析扫雷游戏的知识点。
那么本次咱们主要是讲扫雷中的宏定义,也就是#define这些
首先#define是用来定义一个宏,后面就是类似于和变量一样的常量名,以及最后的数字就是它的值。
定义规则
#define + 定义名 + 函数、语句等等 (注意不需要添加“+”哦)
举个例子:#define printf("hello world\n");
之后,只需在代码中使用到这一串代码时直接定义的名字将其替换即可
优势与劣势
优势:
1.当我们写好这一行代码后,后面需要使用以及修改时比较方便
当然啦vs里面也有一键替换功能,但是在我们写完代码后若是哪里需要修改并且使用了一键替换,只会使bug越来越多
2.在运行内存上,宏的运行速度要比函数快,效率上也更高
劣势:
1.存在副作用:当写成#define A a++时会出现副作用
正确写法:#define A a+1
2.宏可以完成的,函数也可以完成,但是函数可以完成的,宏不一定能完成
本篇文章的主要内容已经结束,最后再给大家讲解一下为什么ROW+2 和 COL+2,以及若是两者都+1会怎么样。
首先从上面的图片中,大家可以看到我们最初定义的扫雷盘是9*9的大小,那么为什么后面ROW以及COL后面要+2,首先我们设置的排雷方式是显示输入坐标以及该坐标的四周,所以当遇到这种情况时难免会出现bug,如图所示
也许有人会说:那我们加一行不就行了吗,那么是否如此呢,我们实践出真知。
20240419_103407
由此可见:ROW和COL在定义了初值后需要 +2
那么本篇文章的内容就先到这了,当然我们的深度剖析扫雷游戏的各个知识点系列的文章还没结束,大家敬请期待