当我们想将自己的程序卖出去时,如果我们不会隐藏自己的代码,一份程序只能卖出一次,但当我们学会隐藏自己的代码后,我们就可以将一份代码卖出两份的钱(原代码和隐藏后的代码),接下来让我们进入正题
多文件书写的介绍
首先,我们想要隐藏代码得了解多文件书写,以及其好处
如函数一样多文件书写将代码功能进行划分,使得代码更模块化,代码之间的逻辑更清晰
多文件书写的逻辑和函数类似:将主函数的代码拆分成不同的功能,分别用函数去实现,各部相对独立,逻辑清晰,代码简洁(只不过将拆分的对象由代码变成了函数)
C语言中多文件书写会根据函数划分成三个模块
- 函数声明(.h)
- 函数定义(.c)
- 函数调用(.c)
函数声明
声明函数的类型,名字和参数,我们将这一块放到头文件(.h)中,同时需备注函数的功能及用法,方便我们调用
示例如下:
在头文件中我们不仅可以声明函数,还可以声明自定义的符号,同时,我们也可以将接下来需要用到的头文件囊括进去,这样在我们引用此头文件时,同时引用了其他头文件,加快了编写代码的效率
函数定义
当我们在头文件中声明了函数后,我们需要定义我们函数的功能,而这就需要通过编写源文件(.c)来实现
示例如下:
- 需要注意的是此文件不包含main函数,仅仅是定义函数,即此文件是不可运行的
- 同时,在开头需要包含函数声明的头文件
此定义与函数的声明息息相关,这两部分使一个函数完整了,所以我们将其与包含其函数声明的头文件命名一致
而这一部分就是我们可以隐藏的代码,在后面我会讲如何操作
函数调用
这一部分需要用到main函数来调用函数运行代码,如库函数,我们调用我们自定义函数时需要包在开头包括函数名,才能调用(库函数和自定义函数创建的逻辑一致,区别只是名字和功能不同)
示例如下:
库函数的来历:C语言一开始并没有库函数,因为大家都普遍使用这些功能但大家所编写的函数又不尽相同,每次用之前都要编写很麻烦,所以由开发者统一规定函数名和函数的功能,由C语言软件开发商去编写实现,这才形成了大家所公认的库函数
多文件书写的好处
- 逻辑清晰
- 方便多人协同
- 适当隐藏代码
逻辑清晰就不多说了,将函数区块化,每个人负责一个文件就可以多人分别编写了,重点在第三点
隐藏代码
因为我们将一个程序分为三部分,当我编写函数实现了一个功能时,我完成了前两部分,而现在有一个公司想买我这个功能,这个公司想要调用我们的函数,我们只需要将标注函数功能的头文件(.h)和由函数定义(.c)转换的静态库(.lib)卖给这个公司,他在调用我们的函数时候插入引用头文件和静态库就可以了
将源文件转换成静态库的方法
找到属性的选项,点击,弹出以下界面:
点击运行,会发现无法运行,因为此项目中没有main函数
但可以生成静态库(.lib)文件,通过以下方式查找:
不要点到文件名game的那个里面的X64,里面有个文件后缀为(.lib.recipe)但不是我们要找的文件
正确的查找路径:
当我们试图用记事本打开这个文件时,我们会发现一串乱码,这一定程度上帮助我们隐藏代码了
如何使用静态库
将此文件和声明的头文件(.h)卖给公司(转移到另一个程序中)
这次要点开带有文件名的文件夹,复制两个文件到里面去:
将头文件加入:
在主函数中引用头文件以及导入静态库:
导入静态库的语句:#pragma comment(lib,"文件名.lib")
运行程序:
程序运行成功