我们一点点来,首先,假设我们要写一个加法功能的实现,
这里是在单个文件里调用函数,实现一个加法的功能,
下面我们把自定义函数放在下面,上面对自定义函数进行一个声明,
下面我们把代码放到多个文件里,
创建两个文件,用来实现加法的功能,
在add.h中放入自定义函数的声明,
add.c中放入自定义函数,
add.h中对自定义函数进行声明,
add.c中放入自定义函数的内容,
这里我们在其他的文件里对编写了一个函数,那么我们想要在主函数调用的话要怎么办呢,
这里我们可以类比一下库函数,库函数是开发人员写好功能后,用户只需要用include调用就可以了,那么想要在main函数里使用我们自定义的add函数的话,只需要在开头加上,#include"add.h",那么我们就相当于调用了自定义函数add,
下面我们来运行一下看看,
我们可以看到,代码是正常运行了的,
那么为什么我们要把一个可以简单的用一个文件写出来的东西给搞复杂呢,
这是因为,我们在以后免不了面对一些大型的工程需要我们的设计,那么如果在一个文件里写,那大概率是要排队的,假设每个模块分两个人来设计,那么谁先设计?这总归会延长工期,效率不高,那么怎么提高效率,怎么让不同的模块一起设计?我们就可以用上面所讲的方法,建立多个文件,这样就可以实现多人同时进行一个大项目的编写,
这里要提一点,add.h内的声明是可以舍弃的,
这里我将add.h中的声明屏蔽后依旧是可以运行的,那么我们为什么还要多此一举,在额外的去建立一个add.h的文件呢,
这就涉及到我们这篇文章所要讲的第二个点了,我们可以通过这个实现代码隐藏,这里假如张三在业余时间做了一个游戏引擎,公司A想要买张三的这个代码,但是张三害怕买了之后,公司把代码改改就跟自己没关系了。那张三说,我可以买这个功能,但是不给你看代码,这个引擎有什么问题,我来维护,我来修。公司A可以写代码来使用我这个功能,那想让人家使用电话,你得告诉人家你的名字,参数,功能等等是什么,怎么使用对吧。那怎么能把代码隐藏起来的同时把这些东西给到买家呢,那这里头文件就有着巨大的作用,如上述例子,我把add.h暴露,里面写上用法,名称,参数,返回值等,把aad.c隐藏起来,那这样就必须要写多个文件了,不能把add函数的声明放在add.c里,从而省略aad.h了。
aad.c怎么隐藏呢,
我们可以把它变成静态库或者动态库,我们假设把它变为静态库,
这里是张三写的一个功能add
包含着两块内容,其中add.c是代码,想要隐藏起来,add.h里是要卖出去,让买家可以看懂的,写着用法,
找到项目名称,右击鼠标,点击属性,
将默认的应用程序改为静态库,然后点击应用,确定,
点击生成,点击生成解决方案,
我们这里生成了一个add.lib文件,这就是一个静态库,我们可以来看一下,在刚刚新建的存放这些文件代码的文件夹里有一个x64,
Debug里就有一个add.lib
我们可以右击鼠标,打开记事本,看一下里面的内容,
里面是一堆乱码,都是我们看不懂的信息,是看不到源码信息的,那么这时候张三就放心的把这个文件卖给了A公司,但是只卖这一个是不行的,还要把头文件一起给A公司,
现在进入公司所写文件中,将add函数导入进去,
右击,点击添加,点击现有项,找到add.h添加,
但是这里并不能使用add.lib这个静态库,我们需要在源.c中导入一下静态库,
现在就可以正常使用了,