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

第一部分

宏的概念:

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

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


第二部分  无参宏

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


使用注意事项:


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

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

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

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

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

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


第三部分 有参宏

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


有参宏使用注意事项:


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

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

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

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



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hanxujie00/article/details/46835761
个人分类: C语言学习笔记
想对作者说点什么? 我来说一句

c和c++宏的使用总结

2010年09月10日 80KB 下载

c语言使用

2011年11月08日 7KB 下载

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭