宏函数
来源:互联网 发布:最终幻想14神优化 编辑:程序博客网 时间:2024/06/04 18:15
一 .宏的理解
1. #define 机制包括了⼀个规定,允许把参数替换到⽂本中,宏只是实现一个简单的文本替换功能。
2. 宏的定义
#definename( parament-list ) stuff
其中neme是宏名,一般大写;( parament-list )是参数列表,注意该参数列表的左括号一定要和name紧邻着,不然会出现错误;stuff和右括号之间有一个空格,stuff是宏函数的具体实现,一般会出现参数列表里面的内容。
二 . 例题和使用注意
1. 参数加括号
写一个简单的计算平方的宏函数
#define SQUARE(x)x*x
此时我们在主函数中使用这个宏函数时,例如SQUARE(2);得到的结果是4,这一点显而易见。但是如果我们想得到3+2的平方,它得到的结果是不是我们想要的呢,如:SQUARE(3+2);分析一下,我们要始终注意宏函数是简单的文本替换,我们输入上述语句,得到的执行语句实际上是3+2*3+2结果是11。
使用注意:在写宏函数的具体实现时,在每个参数外加上(),这样就可以避免上述问题,#define SQUARE(x) (x)*(x),再次计算3+2的平方时是这样替换的,(3+2)*(3+2);得到的结果就是25。
2. 执行语句加括号
解决了上面的问题,我们的宏函数还是存在问题的,我在上面的基础之上再次调用一下,定义宏函数
#define SQUARE(x)(x)+(x)
使用宏函数,我想计算3+2的二倍之后的结果在乘以10,以我们的习惯会通过如下方式进行调用,10*SQUARE(3+2),乍一看这个结果是100,但实际是不是呢。注意宏函数时简单的文本替换,替换后的执行结果是这样的,10*(3+2)+(3+2),结果是55。
使用注意:写宏函数时,不光在参数外加括号,还注意适当的在整个执行语句外加括号。
(因时间关系,关于宏函数还有其他的注意是事项,以后再做补充)
- 函数、宏、内联函数
- 宏函数
- 宏函数
- 宏函数
- 宏函数
- 函数宏
- 宏函数
- 宏函数
- 宏函数
- 宏函数
- 宏函数
- 宏、函数和内联函数
- Cognos函数(二) - 宏函数
- 常规函数,内联函数,宏
- 内联函数和宏函数
- 宏函数和自定义函数
- 宏、函数、宏函数,内联函数的区别
- 宏函数、内联函数、普通函数的区别
- 注册登录页面 (Java+MySQL)
- 计算机学习层次划分第二阶段技能:面向团队:协同开发:合作【人协】属性
- 堆排序(模版)
- Maven手动添加JAR 包到本地仓库
- android.mk 文件 这个先存下来 在看
- 宏函数
- 异步脚本
- 蓝桥杯嵌入式输入捕获
- S2.3_Struts2_ActionGetInputFormData Action动作类接收用户输入表单数据的3种实现方式
- JavaIO流基础学习
- php对多维数组的某个键值排序方法
- Java 环境搭建 —— Git 从无到有
- mac自带计算器 进制转换
- Eclipse一点击右键就卡死