在c语言中宏和函数的区别

来源:互联网 发布:python sleep 毫秒 编辑:程序博客网 时间:2024/06/06 03:13
关于c语言中的宏,自己来总结一下。
简单来说,宏就是在c语言中简单的文本替换,这是简单的理解,严格的说不是很准确,因为在宏中存在一个文本条件编译,所以有一定的判断,宏是在c语言中的预处理阶段就已经处理完成。
函数呢,就要分为两种了。
第一种封装成库。如果函数在动态库中,那么调用就是在函数运行阶段 。如果在静态库中,就在编译阶段就把相应的头文件copy一份到代码中,这样的代码的效率会有所 的提高,但文件的或者代码量比较大。
第二种就是自己写的函数,这样就是用就调用执行,不用COPY代码。

那么下来咱们具体来总结一下宏与函数的区别:
1.  从代码长度来看:
宏:宏是简单的代码替换,每次使用时都是插入到程序中,除了非常小的宏外,程序会将大幅度增长。
函数:代码只出现与一个地方,每次调用都会到那个地方用同一份代码。
2. 执行速度:
宏:速度相对快。
函数:存在反返回值和函数调用。
3.  可靠度:
宏:在宏的简单文本替换中,是不会计算,所以在遇到操作符优先级问题,有可能会出现错误。
函数:函数有类型所以,有传值计算表达式,结果更容易预测。
4参数类型:
宏:宏与类型无关,只要是合法的,可以是任何参数类型。

函数:函数是与类型有关的,如果参数类型不同,就需要使用不同的函数,即使执行任务是相同。

原创粉丝点击