当前位置:鱼C工作室 >带你学C带你飞 > 查看文章

第一季:语法基础 – 高级宏定义 | 带你学C带你飞S1E40

高级宏定义

 

让编程改变世界

Change the world by program


 

高级宏定义

 

作为 C 语言三大预处理功能之一,宏定义的作用是替换,关于宏定义有一点大家一定要了解,就算再复杂,它也只是替换,不做计算,也不做表达式求解。另外的两大预处理功能分别是文件包含还有条件编译。

 

不带参数的宏定义

 

宏定义分为带参数和不带参数两种情况,不带参数的情况就是我们熟悉的直接替换操作。

例如:#define PI 3.14

这个宏定义的作用是把程序中出现的  PI  在预处理阶段全部替换成  3.14

 

注意:

1. 为了和普通的变量进行区分,宏的名字通常我们约定是全部由大写字母组成

2. 宏定义只是简单地进行替换,并且由于预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,所以编译器不会对宏定义进行语法检查

3. 宏定义不是说明或语句,在末尾不必加分号

4. 宏定义的作用范围是从定义的位置开始到整个程序结束

5. 可以用 #undef 命令终止宏定义的作用域

6. 宏定义允许嵌套

 

…… 此处省略N多内容,具体请看视频讲解 ……

 

带参数的宏定义

 

C 语言允许宏定义带有参数,在宏定义中的参数称为形式参数,在宏调用中的参数称为实际参数,这点和函数有些类似。

例如:#define MAX(x, y) (((x) > (y)) ? (x) : (y))

这个宏定义的作用是求出x和y两个参数中比较大的那一个。

 

…… 此处省略N多内容,具体请看视频讲解 ……

 

【课后作业】S1E40:高级宏定义 | 课后测试题及答案

【知识点备忘】S1E40:高级宏定义


为您推荐

报歉!评论已关闭.