在c语言中宏和函数的区别
来源:互联网 发布:python sleep 毫秒 编辑:程序博客网 时间:2024/06/06 03:13
关于c语言中的宏,自己来总结一下。
简单来说,宏就是在c语言中简单的文本替换,这是简单的理解,严格的说不是很准确,因为在宏中存在一个文本条件编译,所以有一定的判断,宏是在c语言中的预处理阶段就已经处理完成。
函数呢,就要分为两种了。
第一种封装成库。如果函数在动态库中,那么调用就是在函数运行阶段 。如果在静态库中,就在编译阶段就把相应的头文件copy一份到代码中,这样的代码的效率会有所 的提高,但文件的或者代码量比较大。
第二种就是自己写的函数,这样就是用就调用执行,不用COPY代码。
那么下来咱们具体来总结一下宏与函数的区别:
1. 从代码长度来看:
宏:宏是简单的代码替换,每次使用时都是插入到程序中,除了非常小的宏外,程序会将大幅度增长。
函数:代码只出现与一个地方,每次调用都会到那个地方用同一份代码。
2. 执行速度:
宏:速度相对快。
函数:存在反返回值和函数调用。
3. 可靠度:
宏:在宏的简单文本替换中,是不会计算,所以在遇到操作符优先级问题,有可能会出现错误。
函数:函数有类型所以,有传值计算表达式,结果更容易预测。
4参数类型:
宏:宏与类型无关,只要是合法的,可以是任何参数类型。
简单来说,宏就是在c语言中简单的文本替换,这是简单的理解,严格的说不是很准确,因为在宏中存在一个文本条件编译,所以有一定的判断,宏是在c语言中的预处理阶段就已经处理完成。
函数呢,就要分为两种了。
第一种封装成库。如果函数在动态库中,那么调用就是在函数运行阶段 。如果在静态库中,就在编译阶段就把相应的头文件copy一份到代码中,这样的代码的效率会有所 的提高,但文件的或者代码量比较大。
第二种就是自己写的函数,这样就是用就调用执行,不用COPY代码。
那么下来咱们具体来总结一下宏与函数的区别:
1. 从代码长度来看:
宏:宏是简单的代码替换,每次使用时都是插入到程序中,除了非常小的宏外,程序会将大幅度增长。
函数:代码只出现与一个地方,每次调用都会到那个地方用同一份代码。
2. 执行速度:
宏:速度相对快。
函数:存在反返回值和函数调用。
3. 可靠度:
宏:在宏的简单文本替换中,是不会计算,所以在遇到操作符优先级问题,有可能会出现错误。
函数:函数有类型所以,有传值计算表达式,结果更容易预测。
4参数类型:
宏:宏与类型无关,只要是合法的,可以是任何参数类型。
函数:函数是与类型有关的,如果参数类型不同,就需要使用不同的函数,即使执行任务是相同。
阅读全文
0 0
- 在c语言中宏和函数的区别
- c 语言 中 宏和函数的区别
- C语言中scanf函数和gets函数在输入字符串时的区别
- c语言中static 函数和普通函数的区别?
- c语言中static 函数和普通函数的区别?
- c语言中static 函数和普通函数的区别
- c语言中static 函数和普通函数的区别?
- c语言中static 函数和普通函数的区别?
- c语言中static 函数和普通函数的区别?
- c语言中static 函数和普通函数的区别?
- 【C语言】宏和函数的区别
- 【C语言】宏和函数的区别
- 【C语言】宏和函数的区别
- 在C/C++语言中声明和定义的区别
- c语言中宏定义和函数区别
- C语言类函数宏和一般函数的区别
- C中数组在函数中形参和实参的区别
- 宏和函数的区别(C语言)
- Codeforces 834A
- Error:Execution failed for task ':app:processDebugManifest'
- 美联航事件的系统思考
- Hadoop集群安装
- java作业
- 在c语言中宏和函数的区别
- 学习笔记TF054:TFLearn、Keras
- SpringMVC 接收时间类型
- SSH与SSM学习之Spring21——Spring事务之代码方式管理事务(基本不用)
- JZOJ 5441 序列
- 在VS2015下,glog的简单使用
- LuoguP2827/UOJ264[NOIP2016D2T2]蚯蚓 解题报告【单调队列】
- 欢迎使用CSDN-markdown编辑器
- Hadoop集群搭建