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://myzitong.com/article/djgpei.html