宏定义
2015-09-14 07:08
309 查看
宏定义的使用
宏分为不带参数的宏和带参数的宏
1、不带参数的宏定义
格式
#define 标识符 字符串
符号常量
使用宏定义可以提高程序的通用性和易读性,减少输入错误和便于修改。
。宏定义末尾不加分号
。宏定义通常在文件的最开头
。 宏定义不分配内存
2、带参数的宏定义
格式
#define 宏名(参数表) 字符串
宏名和参数的括号间不能有空格
带参数的宏定义类似函数调用,函数有调用与返回,而宏定义只是简单的替代,函数在编译时要检查形参与实参的类型是否一致,而宏定义不检查。
为了减少堆栈,并减少函数调用时的分配内存、保留现场、值传递与返回值等所花费的时间,可用带参宏定义取代函数调用,此函数通常语句较少。
比较复杂的函数并有多次调用时不建议用宏定义替代,因为复杂的函数占用程序存储器的空间较大,如果用宏定义,则N次引用宏就在程序中占用N倍的空间。
宏分为不带参数的宏和带参数的宏
1、不带参数的宏定义
格式
#define 标识符 字符串
符号常量
使用宏定义可以提高程序的通用性和易读性,减少输入错误和便于修改。
。宏定义末尾不加分号
。宏定义通常在文件的最开头
。 宏定义不分配内存
2、带参数的宏定义
格式
#define 宏名(参数表) 字符串
宏名和参数的括号间不能有空格
带参数的宏定义类似函数调用,函数有调用与返回,而宏定义只是简单的替代,函数在编译时要检查形参与实参的类型是否一致,而宏定义不检查。
为了减少堆栈,并减少函数调用时的分配内存、保留现场、值传递与返回值等所花费的时间,可用带参宏定义取代函数调用,此函数通常语句较少。
比较复杂的函数并有多次调用时不建议用宏定义替代,因为复杂的函数占用程序存储器的空间较大,如果用宏定义,则N次引用宏就在程序中占用N倍的空间。
相关文章推荐
- OSChina 周一乱弹 —— 英雄救肉,才是真吃货!
- [LeetCode] Valid Anagram - 字符串排序比较系列
- 屌丝之王的互联网创业路
- Node.js开发入门—套接字(socket)编程
- C#中的try catch 和finally
- Count Primes 解答
- 【Bower】
- c语言迷宫游戏的实现
- lightning mdb 源代码分析(2)
- lightning mdb 源代码分析(2)
- Maximum entropy modeling(一)
- 机器学习温和指南
- mysql修改表、字段、库的字符集
- 【apache】
- php文件扩展名判断及获取文件扩展名的N种方法
- JavaScript学习笔记(三):JavaScript也有入口Main函数
- js查看一个函数的执行时间实例代码
- javascript判断网页是关闭还是刷新
- JavaScript中this的9种应用场景及三种复合应用场景
- jQuery实现自动切换播放的经典滑动门效果