内联函数inline与宏定义深入解析
- 软件编程
- 2026-01-11 15:15:58
内联函数的优越性:
一:inline定义的类的内联函数,函数的代码被放入符号表中,在使用时直接进行替换(像宏定义一样展开),没有了调用的开销,效率很高。
二:类的内敛函数是一个真正的函数。
三:使用内联函数inline可以完全取代表达式形式的宏定义。
例子:
复制代码 代码如下:
Class A
{
public:
int readTest()
{
return nTest;
}
void setTest(int i);
};
inline void A::setTest(int i)
{
nTest=i;
};
说明:类A的成员函数readTest()和setTest()都是内联函数,readTest()函数的定义体被放在类声明之中,因而readTest()自动转换成inline函数,setTest函数的定义体在类声明之外,因此要加上inline关键字。
总结inline函数与宏定义的区别:
1、内敛函数在编译时展开,而宏是在预编译时就展开了
2、在编译时内敛函数可以直接被嵌入到目标函数代码中,而宏只是一个简单的文本替换
3、内敛函数可以完成诸如类型的检测、语句是否正确等编译功能,宏就不具备这种功能
4、宏不是函数,而inline函数是函数
5、宏在定义时要小心处理宏参数,(一般情况是把参数用括弧括起来)。
# 都是
# 可以直接
# 放在
# STRONG
# 没有了
# 是一个
# 是在
# 是否正确
# 就不
# 转换成
# 时要
# 很高
# style
# 时就
# 内敛
# 只是一个
# 展开了
# COLOR
# FONT
# C/C++宏定义的可变参数详细解析
# inline
# 内联函数
# C语言中宏定义使用的小细节
# C语言宏定义使用分析
# 详解C语言中的#define宏定义命令用法
# C语言中的内联函数(inline)与宏定义(#define)详细解析
# 宏定义
# 浅谈内联函数与宏定义的区别详解
# 主流操作系统平台的宏定义
# 函数式宏定义与普通函数的区别
# 基于C中含有if的宏定义详解
# Objective-C 宏定义详细介绍
相关栏目:
【
教研文案 】
【
日常文案 】
【
AI模型 】
【
网络运营 】
【
营销推广 】
【
云计算 】
【
技术教程 】
【
软件编程 】
【
汉字学习 】
【
歌词歌曲 】
【
精选文章 】
相关推荐:
python3.9实现pyinstaller打包python文件成exe
Shell中使用grep、sed正则提取和替换字符串
通过实例解析synchronized和lock区别
Python导入父文件夹中模块并读取当前文件夹内的资源
python 基于opencv 绘制图像轮廓
c# 线程安全队列的用法原理及使用示例
IPV4和IPV6正则表达式的深入讲解
C++获取字符串长度的几个函数方式
pandas实现导出数据的四种方式
C# 实现把double 存成两位精度小数
如何使用 vue-cli 创建模板项目
原生js实现自定义消息提示框
Win10系统下配置java环境变量的全过程
Nginx+php配置文件及原理解析
vue添加自定义右键菜单的完整实例
JS实现京东商品分类侧边栏
JavaScript手写数组的常用函数总结
JavaScript中的几种继承方法示例
Python APScheduler执行使用方法详解
docker 连接宿主Mysql操作
redission分布式锁防止重复初始化问题
MongoDB如何正确中断正在创建的索引详解
PostgreSQL COALESCE使用方法代码解析
c++ STL之list对结构体的增加,删除,排序等操作详解
python制作一个简单的gui 数据库查询界面
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
docker部署nginx并且挂载文件夹和文件操作
Shell eval通过变量获取环境变量的方法实现
python实现启动一个外部程序,并且不阻塞当前进程
Linux 使用shell脚本处理字符串的实现
Spring Boot 通过 Mvc 扩展方便进行货币单位转换的代码详解
Python控制鼠标键盘代码实例
详解IDEA社区版(Community)和付费版(UItimate)的区别
SpringBoot从0到1整合银联无跳转支付功能附源码
MyBatis Plus更新对象无法设空值解决方案
Git 如何放弃所有本地修改的方法
Java 合并多个MP4视频文件
浅谈MySQL中float、double、decimal三个浮点类型的区别与总结
微信小程序实现左滑删除效果
解决docker CMD/ENTRYPOINT执行sh脚本报: not found/run.sh:
python 实用工具状态机transitions
在Python中实现字典反转案例
关于小程序优化的一些建议(小结)
golang API开发过程的中的自动重启方式(基于gin框架)
sql server把退款总金额拆分到尽量少的多个订单中详解
一文告诉你Sql的执行顺序是怎样的
Navicat Premium远程连接MySQL数据库的方法
MySQL日期与时间函数的使用汇总
Python实现Kerberos用户的增删改查操作
微信小程序实现点击导航标签滚动定位到对应位置
本文转自网络,如有侵权请联系客服删除。
热门内容推荐
C#使用虚拟方法实现多态
- 2026-01-11
JavaScript原生对象之String对象的属性和方法详解
- 2026-01-11
js实现DOM走马灯特效的方法
- 2026-01-11
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
- 2026-01-11
php实现微信公众平台账号自定义菜单类
- 2026-01-11
