3.在我们了解了声明和定义了,我们就在想,它们除了这样有没有其他作用呢?
其实函数的声明和定义通常不是上面这样使用的,函数的声明应该放在头文件当中。
声明如下:
定义为:
使用为:
这里就有人有疑问了,明明这么简单一个代码,为什么非要弄三个,搞得如此复杂。
这里我们得把眼光看长远点儿,未来你写的代码肯定会比这复杂,一个人无法完成,需要协作,不可能都在一个test.c里面写,这时候就需要我们分模块来写。比如我们这儿需要实现一个简单的计算机,我们便可以把加、减、乘、除分为四个模块,分别交给A、B、C、D四位程序员来完成
每个程序员都完成自己相应模块后,这时候当需要一个完整的计算机的时候,便可以轻松完成,比如q程序员想做,这时候他只需要创建一个test.c,并在该工程包含该这些函数便可以实现
这样做的优点是:1.分模块去写,方便写作,最后做整合
2.可以把代码的实现和声明分离
声明和分离又有什么用呢?
在这儿给大家举一个列子,假如,博主很厉害,在空余时间写了一个,很牛的代码(由于博主现在不牛,后面代码用加法代码代替),想要卖出去挣钱。那你想我是不会愿意把源代码卖出去,那这个时候我怎么才能既把东西卖出去,又不让别人知道我是怎么写的呢。
这时候便可以进行如下操作:
我们卖代码的时候,只需要让买家知道函数名和怎么使用就行。首先这是我们所写的代码
然后我们选中我们的项目csdn5_5,右键选中属性,我们会看到一个页面(如下),点击常规,
然后选中配置类型,将应用程序改为静态库 ,然后应用、确定
这时候由于已经变成静态库了,自然是无法编译了,下一步我们找到我们项目存储的路径
我们点进Dehug,会发现一个csdn.lib的文件
这时候我们可以打开这个文件看一下,在这里博主选择用记事本来打开,我们会发现为一段乱码,无法看懂。
进行到这儿,这个时候我们就可以将add.h和csdn5_5.lib文件卖出去还不会泄露自己代码实现,那么问题来了,买家拿到后该如何实现呢?我们只需要将这两个文件放入到买家所创建工程文件中,并在使用时前面加上
#pragma comment(lib,"csdn5_5.lib")
1. #include "add.h" 2. //.lib - 静态库 3. //导入静态库 4. #pragma comment(lib, "csdn5_5.lib") 5. int main() 6. { 7. int a = 0; 8. int b = 0; 9. scanf("%d %d", &a, &b); 10. int c = Add(a, b); 11. printf("%d\n", c); 12. return 0; 13. }
三、函数的递归
1.什么是递归
程序调用自身的编程技巧称为递归( recursion)。
递归做为一-种算法在程序设计语言中广泛应用。一 个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把- -个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。
递归的主要思考方式在于:把大事化小
2.递归的两个条件
1、 存在限制条件,当满足这个限制条件的时候,递归便不再继续。
2、每次递归调用之后越来越接近这个限制条件。
关于递归的两个条件的详细讲解,以及递归与迭代,请关注博主后续动态更新!!!