宏定义
来源:互联网 发布:电路原理图设计软件 编辑:程序博客网 时间: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;
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义
- 宏定义,#,##
- 宏定义
- 宏定义
- 宏定义
- 甲骨文战略主导下 MySQL数据库将走向何方
- 【转】成像的清晰度、分辨率和锐度
- 浅析ETL过程中的元数据
- Hadoop端口说明
- 因配置JDK环境变量后无法进入系统桌面(无法用vi)的解决办法
- 宏定义
- 还是大小端转换方法
- 解决方法:该站点安全证书的吊销信息不可用。是否继续?
- oracle日志归档模式改变 .
- jquery挨着input显示内容.
- String类中构造函数、拷贝构造函数、赋值函数的实现
- MySql数据库的列类型(字段类型
- jQuery.fn详解
- P2P之UDP穿透NAT的原理与实现