宏和函数的区别
来源:互联网 发布:java游戏魔幻西游 编辑:程序博客网 时间:2024/04/30 04:19
- 宏和函数 ,表面上看起来十分相似但俩者却完全不同
- 宏定义中出现的括号是为了预防运算符优先级的问题
- 函数和宏的选择,实际上是 时间 与空间 的权衡, 宏占了大量的空间,函数占用了大量的时间
- 宏做的是简单字符串的替换,而不是实际值;函数进行的是参数的传递,参数是有类型的,而宏的使用没有类型的限制。
- 宏产生的代码是内联代码, 在程序中产生的语句, 如果使用了20次宏,则会把20 行代码插入程序; 若使用20次函数,那么程序中只会有一份函数语句的拷贝(内联代码花费的时间比较长)
- 宏在编译之前进行,先用宏体替换宏名,在进行编译。 而函数在编译之后,在执行的时候才被调用。 所以宏占用的是编译的时间 ,函数占用的是执行的时间。
- 宏的参数不经过计算直接处理; 函数的调用的将实参的值传递给形参,是通过计算的 。
- 宏的参数不占内存空间,只是字符串的替换; 函数调用时的参数传递是具体变量之间的信息传递,是占内存的。
- 函数的调用需要一定的时空开销,宏却不需要。
- 宏的名字中不能有空格,但是代替字符串中可以有空格。
- 宏的命名一般约定使用大写字母。
0 0
- 宏和函数的区别
- 宏和函数的区别
- 宏和函数的区别
- 宏和函数的区别
- 宏和函数的区别
- 宏和函数的区别
- 宏和函数的区别
- 宏和函数的区别
- 宏和函数的区别
- 宏和函数的区别
- 宏和函数的区别
- 宏和函数的区别
- 宏和函数的区别
- 宏和函数的区别
- 宏和函数的区别
- 宏和函数的区别
- 宏和函数的区别
- 宏和函数的区别
- Python 文件读写操作
- 在亚马逊云服务器上部署阿里数据库Otter(一)
- Eclipse报错:java.lang.ClassNotFoundException: ContextLoaderListener
- 定时发布
- lua 实现从ftp获取文件,并把文件部分内容记mysql
- 宏和函数的区别
- Deep-Learning NotePad3 : convolutional neural network
- 【BZOJ 2588】Count on a tree 【树上路径第K大】【LCA+主席树】
- 关于listView不同数据类型的加载
- 日常开发161017
- 缘起
- UVALive 6886 Golf Bot FFT
- 如何使用自定义的字体
- 使用 Git 管理源代码