C、C++宏定义-创新互联
对于C语言的宏定义已经有些模糊了,今天再来复习一下。
宏定义就是一个简单的字符串直接替换
宏定义格式
#define 标识符 替换内容
注意事项
- 一般一条宏定义语句独占一行,且结尾无分号(宏定义不是语句)
- 标识符与待替换的文本之间不能用等号
=
- 标识符与替换内容之间用空格隔开
- 宏定义只是做简单的文本替换,如果替换表达式,建议使用括号括起来,否则容易出错
// 正确
#define N 5050
//错误
#define N =50
//此时 a[N] 就是 a[=50] ,报错
//错误
#define N 3+2
// N*N = 3+2*3+2, 会产生错误
//正确
#define N (3+2)
带参数的宏定义#define 宏名(形式参数) 字符串
在调用时会使用实参去替换形参
注意
- 宏名与第一个括号之间不能有空格
- 在带参宏定义中,不会为形式参数分配内存,因此不必指明数据类型,而在宏调用中,实参包含了具体的数据,要用他们去替换形参,因此必须指明数据类型(实参必须指定数据类型)
- 在宏定义中,待替换的字符串中的形参一般使用括号括起来避免出错
// 正确
#define MAX(a ,b) ((a)>(b)?(a) : (b))
//错误
#define f(x) (x*x)
//调用时 f(2+1) 会被替换成 2+1*2+1 ,出错了
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网页名称:C、C++宏定义-创新互联
网页链接:http://ybzwz.com/article/djgpei.html