C语言 宏的概念和使用总结

第一部分

宏的概念:

被定义为“宏”的标识符称为“宏名”。

在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。""分为有参数和无参数两种.


第二部分  无参宏

无参宏的使用格式:  #define 标识符 字符串 


使用注意事项:


1) 习惯上宏名用大写字母表示,以便于与变量区别。但也允许用小写字母

2) 宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名 ,这是一种简单的替换.预处理程序对他不作任何检查.

3) 宏定义不是说明或语句,在行末不必加分号,如加上分号则连分号也一起置换。
4) 宏定义必须写在函数之外,其作用域为宏定义命令起到源程序结束。如要终止其作用域

可使用 #undef命令。
5) 宏名在源程序中若用“”括起来,则预处理程序不对其作宏代换。

6) 宏定义允许嵌套,在宏定义的字符串中可以使用已经定义的宏名。在宏展开时由预处理程序层 层代换。

7) 可用宏定义表示数据类型,使书写方便。
8) 对“输出格式”作宏定义,可以减少书写麻烦9)特别注意注意括号问题 


第三部分 有参宏

对带参数的宏,在调用中,不仅要宏展开,而且要用实参去代换形参。使用格式:#define 宏名(形参表) 字符串


有参宏使用注意事项:


1) 带参宏定义中,形参之间可以出现空格,但是宏名和形参表之间不能有空格出现。

2) 在带参宏定义中,形式参数不分配内存单元,因此不必作类型定义。而宏调用中的实参有具体 的值。要用它们去代换形参,因此必须作类型说明.带参宏中,形参和实参只是符号代换,不存在值传递的问题。

3) 在宏定义中的形参是标识符,而宏调用中的实参可以是表达式。4)在宏定义中,字符串内的形参通常要用括号括起来以避免出错。在上例中的宏定义中

(y)*(y) 表达式的y都用括号括起来,因此结果是正确的。5)宏定义也可用来定义多个语句,在宏调用时,把这些语句又代换到源程序内。 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值