define与inline区别
来源:互联网 发布:乐清知临中学地址 编辑:程序博客网 时间:2024/06/06 16:45
define称为“宏”,在C语言编程中非常重要,它在程序编译时只是在预处理的过程中实施简单的替换操作而已,但是在替换过程中可能出现各种不安全性问题,不进行参数有效性检查。
define:定义预编译时处理的宏;只进行简单的字符替换,无类型检测。
inline:内联函数对编译器提出建议,是否进行宏替换,编译器有权拒绝。
内联函数和普通函数相比可以加快程序的运行速度,但它是以增加程序存储空间为代价的,由于不需要中断调用,在编译内联函数的时候内联函数可以直接被嵌入目标代码中。
对于短小的代码,inline可以带来一定效率的提升,且与C时代的define(宏)相比,它更安全可靠。
宏和内联函数的主要区别如下:
1. 宏是代码处不加任何验证的简单替代,而内联函数是将代码直接插入调用处,而减少了普通函数调用时的资源消耗。
2. 宏不是函数,只是在编译前预处理阶段将程序中有关字符串替换成宏体。
3. inline是函数,但在编译中不单独产生代码,而是将有关代码嵌入到调用处。
总结如下:
对于一般常量,最好用const和enum替换#define;
对于类似函数的宏,最好改用inline函数替换#define。
阅读全文
0 0
- define与inline区别
- define与inline的区别
- define与inline的区别
- define与inline的区别
- define与 inline的区别
- define与inline的区别
- define与inline的区别
- define与const、inline、typedef的区别
- c++中 inline与define的区别
- C++ inline 与#define 区别联系
- inline define区别
- inline define区别
- inline 与 define
- define与inline
- C++中 #define与const、inline、typedef的区别
- static define const inline的产生背景与区别
- C++中 #define与const、inline、typedef的区别
- 浅谈define与inline的区别及程序说明
- 1002. 写出这个数
- Spring MVC @ResponseBody注解返回响应流时中文乱码问题的解决
- HandlerThread使用个人理解
- SpringBoot 静态资源版本管理
- 自定义surfaceview的步奏以及注意事项
- define与inline区别
- JSON中的{}与[]
- Static基本用法总结
- 改名字就找我咯
- 《UNIX环境高级编程》笔记--sigsuspend函数
- IDEA 下写出第一个 SSH 整合框架练手项目(二,整合SSH及登陆页面的完成)
- Android studio 3.0 引起的自定义打包文件名 outputFile sync failed
- OpenCV-边缘检测和图像金字塔
- itoa的实现