今天简单讲一下,宏定义和函数的区别。 我们都知道,利用宏也可以做一些简单的运算。 比如我们#define SWAP(x,y) x>y?x:y 上面一个宏把SWAP定义成一个比较出较大值的函数。 但是宏和函数还是有区别的。 宏:只做简单的文本替换,#define允许把参数替代到文本中。 宏替换时先检查 ...
分类:
其他好文 时间:
2017-10-26 15:16:57
阅读次数:
177
先说宏和函数的区别: 1. 宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换),而函数的参数的传递,参数是有数据类型的,可以是各种各样的类型. 2. 宏的参数替换是不经计算而直接处理的,而函数调用是将实参的值传递给形参,既然说是值,自然是计算得来的. 3. 宏在编译之前进行,即先 ...
分类:
其他好文 时间:
2016-09-01 23:00:14
阅读次数:
168
宏与函数的区别:1、宏做的是简单的字符串替换,不受类型限制;而函数是参数的传递,受到参数类型的限制。2、宏体替换宏名是在编译之前就完成的,函数参数的调用是在函数执行时将实参传给形参的。3、宏参数的替换是不经过计算的,有可能会带有副作用,所以我们在写宏体的时候一..
分类:
其他好文 时间:
2016-04-06 18:59:44
阅读次数:
187
先说宏和函数的区别:1.宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换),而函数的参数的传递,参数是有数据类型的,可以是各种各样的类型.2.宏的参数替换是不经计算而直接处理的,而函数调用是将实参的值传递给形参,既然说是值,自然是计算得来的.3.宏在编译..
分类:
其他好文 时间:
2016-04-05 20:15:54
阅读次数:
248
时间性考虑:(1)宏只占编译时间,函数调用则占用运行时间(分配单元,保存现场,值传递,返回),每次执行都要载入,所以执行相对宏会较慢。(2)使用宏次数多时,宏展开后源程序很长,因为每展开一次都使程序增长,但是执行起来比较快一点(这也不是绝对的,当有很多宏展开..
分类:
其他好文 时间:
2015-12-25 17:25:39
阅读次数:
158
一、代码长度:宏是完全替换,插入到程序里使得代码变长;函数代码是只出现在一个地方,使用时则去那里调用。二、执行速度:宏更快一些,因为在预编译阶段都已完成;函数则慢一点,因为需要调用以及返回(压栈/出栈)额外时间。三、操作符优先级:宏有时要少加括号而导致计算逻..
分类:
编程语言 时间:
2015-11-17 07:09:33
阅读次数:
193
1.宏会在编译器在对源代码进行编译的时候进行简单替换,不会进行任何逻辑检测,即简单代码复制而已。2.宏进行定义时不会考虑参数的类型。3.参数宏的使用会使具有同一作用的代码块在目标文件中存在多个副本,即会增长目标文件的大小。4.参数宏的运行速度会比函数快,因为不需要参数压栈/出栈操作。5.参数宏在定义...
分类:
其他好文 时间:
2015-04-17 17:39:59
阅读次数:
146