【C语言总结】宏定义,预处理
2015-05-03 20:38
309 查看
宏定义
简单宏
格式:#define 标示符 替换列表#define N 100 int a ;//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
相关文章推荐
- C语言总结——关键字和预处理
- 20个C语言中常用宏定义总结
- C语言-预处理指令1-宏定义
- C语言预处理命令总结大全 :宏定义
- 20个C语言中常用宏定义总结
- IOS开发---C语言-㉑预处理指令:宏定义、条件编译、文件包含
- C语言:预处理的小总结
- 【IOS 开发学习总结-OC-7.4】objective-c与c语言的预处理
- C语言的本质(19)——预处理之一:宏定义
- C语言宏定义高级用法总结
- 【C语言】15-预处理指令1-宏定义
- 嵌入式linux之高级C语言专题--宏定义与预处理、函数和函数库
- 【总结】C语言预处理【2012-02-07 更新】
- C语言的本质(19)——预处理之一:宏定义
- C语言宏定义总结
- 【C语言】C语言预处理命令总结
- 【C语言】宏定义的用法总结
- c语言预处理,包含(宏定义,包含,条件编译)
- C语言预处理命令总结
- C语言及程序设计进阶例程-8 预处理之宏定义