📓集成化所有的提示信息
将所有的提示信息集中在hint模块里面。
当前进度
.---+- include -+- tools -+- color.h
| +- hint.h <---
|
+- src -+- tools -+- color.c
| +- hint.c <---
|
+- main.chint模块
在这个部分我们需要思考的是整个项目中到底有哪些提示信息,我总结的大概有如下几种:
欢迎信息
虽然只用了一次,不过我还是放在了这个模块里。
正在载入
操作成功
操作失败
非法输入
无效实现
这个信息在最终的产品中是不应该出现的,它只在开发的过程中,如果某个部分的功能暂时实现不了,以后才能实现。但是为了搭建模块的需要,又不得不先写点什么的话,可以放置一个
invalidMessage()作为权宜之计。
所以hint.h的内容如下:
先思考一下自己将会如何实现,再看我的实现。
我的实现如下:
我们知道,栈区的空间是很小的(相对来讲),所以较大的数据(比如说大字符串),我们会选择放在静态区或者动态区。
并且这些数据(字符串)从程序开始到程序结束都是一直需要的,所以我通过全局常量的方式将他们放在了静态区。
将数据放置在静态区的方法有两种:
全局变量/全局常量
static关键字限制的局部变量
此外,这些字符串只在本模块里面发挥作用,外部模块只需要调用本模块头文件所提供的接口message函数就足够了,所以我并没有在头文件里面声明这些常量。
同时,我还使用了static关键字将他们的文件作用域限制在了本模块内。这样一来,哪怕外部模块中声明了这些字符串常量,外部模块也不能实用此处的定义,只能使用别处的定义(如果别处有的话,否则编译器会报错)。
上述设计涉及到了C语言中变量作用域以及生存期的相关知识,如果这部分知识点还不够清晰的话,可能需要先找一些相关教程复习一下,因为在我的整个设计当中会经常用到C语言的这些特性。在之后的教程中,如非必要,我将不再解释该知识点。
到此,我们封装了整个程序中所需要的所有提示信息(除了菜单,因为菜单具有除了提示以外的其他功能,所以没有封装在hint里面)。
其实在实际开发过程中,不会一下子就把这个模块写完的,而是在过程中不断迸出新的需求,然后往这个模块里面添加功能和接口,最终形成了你现在看到的这个模块。
最后更新于
这有帮助吗?