【C语言总结】宏定义,预处理
来源:互联网 发布:知彼而知己 打不开 编辑:程序博客网 时间:2024/05/01 19:28
宏定义
简单宏
格式:#define 标示符 替换列表
#define N 100int a[N];//N就是100
带参数的宏
格式:#define 标示符(x1, x2, x3,……xn) 替换列表
#define MAX(x, y) ((x) > (y) ? (x) : (y))
注意:程序编译的时候会把大写的标示符替换成原来的表达式,所以编译时候程序会增大。
优点或者缺点
优点
①程序可能会稍微快些
②宏会更通用
缺点
①编译后代码通常会变大
②无法用指针指向一个宏
③宏可能会不止一次的计算它的参数
宏定义中括号的使用
①#define TWO_PI (2 * 3.1415)
②#define RES(x) ((x) * 10)
原因:因为宏在编译的时候是替换表达式,所以很多不确定因素
例如:
#define RES(x) (x * 10) //假如宏是这样定义的,参数没有括号int j = RES(i + 1);int j = i + 1 * 10; //编译器会替换成这样。与结果完全不对
取消宏
格式:#define N
条件编译
#if 常量表达式 编译内容#endif
defined运算法仅用于预处理器,N必须是定义的宏#if defined(N)....#endif
ifdef指令测试一个标示符是否已经定义为宏
#ifdeft 标示符......#endif
#ifndef 标示符......#endif
1 0
- 【C语言总结】宏定义,预处理
- c语言预处理--宏定义
- c语言预处理宏定义
- C语言预处理——宏定义
- C 语言 之 预处理-------- 宏定义
- C语言-预处理指令1-宏定义
- 【C语言】预处理指令—宏定义
- C语言 预处理指令 1宏定义
- 33.C语言宏定义和预处理
- c语言预处理和宏定义详
- 【C语言】编译预处理及宏定义
- ANSIC标准定义的C语言预处理指令总结
- C语言预处理总结
- C语言中预处理功能之宏定义
- 【C语言】15-预处理指令1-宏定义
- 【C语言】15-预处理指令1-宏定义
- 【C语言】15-预处理指令1-宏定义
- 【C语言】13 预处理指令1-宏定义
- c++_sqrt实现判断素数函数
- svn客户端--TortoiseSVN的安装
- 软考复习专题十---算法设计
- Android L Phone 启动流程
- 使用浮动div元素来实现橡皮筋式截取选取框(鼠标监听事件)
- 【C语言总结】宏定义,预处理
- android 持久化保存cookie
- 方向导数和梯度
- String与InputStream相互转换
- Android ListView 一
- hznu 1464: ST Task(算角度,注意精度)
- Unique Paths
- Java的内存机制
- HTTP 错误 500.22 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。(解决办法)