C语言中的预处理指令和递归
预处理指令:是在编译器把代码编译成0跟1之前就会执行的一些指令。所有的预处理指令都是以#开头的。
预处理指令分为三种:
1.宏定义
用法--如:#define MYINT int 表示把右边的int 在本代码以下的代码中的int都用MYINT代替,#define是固定写法,MYINT是代替名(宏名),可以随便取名但是宏名一般都以都用大写,或者以k开头。int是被代替者,它可以是数值,任意数据类型,
2.条件编译
类似于if语句,如果满足条件就变异以下代码,如果不满足就不进行这段代码的编译。一般情况下原程序中的所有的代码都要进行编译,但有时希望对其中一部分内容只在满足一定条件下才进行编译。即对一部分内容指定编译条件。
格式:#if(条件)
语句;
#elif(条件)
语句;
#else
语句;
#endif--->一定要写,表示结束条件编译!
3.文件包含
分两种:一种是‘包含文件目录’,在安装编译软件时,在安装目录下生成的一些目录。大多数会有一个include目录,该目录下是存放编译器提供的头文件。也就是属于系统文件。用法是:#include <包含文件>
另一种是‘源文件目录’:就是在你编写的程序所存放的目录,即自己写的文件。用法:#include “源文件”
文件包含的作用:就是将#include后面的文件里内容拷贝到当前文件!
递归----就是指函数自己调用自己
能采用递归描述的算法通常有这样的特征:为求解规模为N的问题,设法将它分解成规模较小的问题,然后从这些小问题的解方便地构造出大问题的解,并且这些规模较小的问题也能采用同样的分解和综合方法,分解成规模更小的问题,并从这些更小问题的解构造出规模较大问题的解。特别地,当规模N=1时,能直接得解。在开发时尽量不要使用递归,代码后期难以维护。