宏定义

转载 2012年03月26日 16:00:54
要写好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;

相关文章推荐

dll导出导入宏定义使用总结

  • 2016年02月02日 15:59
  • 14KB
  • 下载

ios - A-常用宏定义

  • 2014年10月24日 10:10
  • 9KB
  • 下载

const常量的实现机制以及与宏定义区别

(1) 编译器处理方式不同   define宏是在预处理阶段展开。   const常量是编译运行阶段使用。 (2) 类型和安全检查不同   define宏没有类型,不做任何类型检查,仅仅是展开...

C语言宏定义中#用法

  • 2012年08月13日 14:31
  • 39KB
  • 下载

sourceInsight 宏定义

  • 2010年05月15日 00:44
  • 8KB
  • 下载

C/C++中的max/min函数宏定义问题

不要轻易修改自带的头文件,写代码一定要规范!
  • zjn21hx
  • zjn21hx
  • 2015年11月12日 22:59
  • 10079

C语言常用宏定义技巧

  • 2012年10月14日 19:58
  • 21KB
  • 下载

C语言中宏定义技巧.doc

  • 2012年01月17日 09:13
  • 36KB
  • 下载

C语言中可变参数的宏定义

printf()和fprintf()这些输出函数的参数是可变的,在调试程序时,你可能希望定义自己的参数可变的输出函数,那么可变参数宏会是一个选择。 C99中规定宏可以像函数一样带有可变参数,比如 ...

宏定义的技巧

  • 2013年05月20日 11:11
  • 396KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:宏定义
举报原因:
原因补充:

(最多只允许输入30个字)