宏定义

来源:互联网 发布:电路原理图设计软件 编辑:程序博客网 时间:2024/06/04 22:16
要写好C语言,漂亮的宏定义是非常重要的。宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。

  在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。

  看下面的例子:

  #define MALLOC(n, type) \

  ( (type *) malloc((n)* sizeof(type)))

  利用这个宏,我们就可以为任何类型分配一段我们指定的空间大小,并返回指向这段空间的指针。我们可以观察一下这个宏确切的工作过程:

  int *ptr;

  ptr = MALLOC ( 5, int );

  将这宏展开以后的结果:

  ptr = (int *) malloc ( (5) * sizeof(int) );

example:

define的单行定义

#define maxi(a,b) (a>;b?a:b)

define的多行定义(注意加\)
//宏定义写出swap(x,y)交换函数
#define swap(x, y)\
x = x + y;\
y = x - y;\
x = x - y;