在C语言中使用宏,我们经常这么做,但是为什么使用宏,他可以做什么,我们或许只是一知半解,下面简单介绍如何在C语言中使用宏预处理器。
#define语句
对于define语句,我们已经非常熟悉,一个宏定义语句,主要用途是定义符号常量,如:
#define PI 3.14159
定义了圆周率PI 为3.14159,在以后用到3.14159的地方直接用PI代替即可,也方便我们编写代码,更大的好处是,如果我不想将圆周率定为3.14159而要求更高精度,如3.14159265,则只需将上面的宏定义改为:
#define PI 3.1415926
即可,无需到程序中用到这个值的地方逐一修改。
下面介绍#define的高级应用
A、 带有参数的宏定义语句
我们也可以定义接受参数的符号,如AQUARE:
#define SQUARE(x) x*x
在以后用到SQUARE(a) 是,将会自动用a*a替换,
如SQUARE(3)将被替换成3*3,这个函数的好处是不论x是什么类型,都可进行同样的处理,double,int类型都可处理,但存在一个问题,如
y=SQUARE(a+1)则将被替换成a+1*a+1
这不是我们想要的结果,所以最好用下面的方法定义
#define SQUARE(x) (x)*(x)
类似可以定义如下函数:
#define MAX(a,b) ((a)