C++ 内联函数

server/2024/10/22 14:05:28/

一 宏定义带来的问题

在这里插入图片描述
最后ret的值是0。问题出在编译器在遇到宏时只是进行简单的宏替换。

宏的好处是没有类似于普通函数调用时的系统开销,并且宏定义的参数可以适宜大多数类型的数据。

宏定义也有缺点:
有时会产生不可预料的副作用。

二 用inline定义一个内联函数

C++中的内联函数既具有宏定义的优点,又克服了宏定义的缺点。
在函数名前加上"inline",即为内联函数。

inline void func(int a,int b);

在编译时调用func的地方用函数体进行了替换,所以程序执行时会减少调用开销。

举例:
在这里插入图片描述

注意事项:

并非所有函数都需要定义内联函数,一般只会将那些频繁被调用的,并且函数体较小的(只有几条语句)函数定义为内联函数。
内联函数内不允许有循环语句和switch语句,否则按照普通函数来处理。


http://www.ppmy.cn/server/39424.html

相关文章

[NISACTF 2022]popchains

第一步:看到 include($value); 作为链尾,则要触发 append($value) -->>__invoke(),看到$function()。 __invoke():对象以函数形式被调用时触发 第二步:$function() ,则要触发 __get($key)&#xff0…

firewalld防火墙

一、Linux防火墙概述 1.1.Linux包过滤防火墙概述 1.2.包过滤防火墙工作层次 1.3.netfilter 1.4.firewalld 1.5.firewalld作用 1.6.firewalld数据处理流程 1.7.CentOS 7中存在的防火墙管理程序 1.8.防火墙区域概念 1.8.1.firewalld区域 1.8.2.firewalld区域…

【MySQL数据库开发设计规范】之命名规范

欢迎点开这篇文章,自我介绍一下哈,本人姑苏老陈 ,是一名JAVA开发老兵。 本文收录于 《MySQL数据库开发设计规范》专栏中,该专栏主要分享一些关于MySQL数据库开发设计相关的技术规范文章,定期更新,欢迎关注&…

使用DependencyCheck工具检测JAR依赖包的安全漏洞

引言 Dependency-Check 是一个开源工具,用于检测软件项目中使用的第三方库和组件是否存在已知的安全漏洞。它可以帮助开发团队及时发现和解决项目中的潜在安全风险,从而提高软件的安全性。 该工具通过分析项目的依赖关系,识别其中使用的第三方库和组件,并与已知的漏洞数据…

图片合称为视频

import cv2 import os def pic_video(args_input_path,folder_path,output_video_path): count 1 image_files [os.path.join(folder_path, file) for file in os.listdir(folder_path) if file.endswith(‘.png’)] img cv2.imread(image_files[0]) height img.shape[0] w…

整理好了!2024年最常见 100 道 Java基础面试题(四十)

上一篇地址: 整理好了!2024年最常见 100 道 Java基础面试题(三十九)-CSDN博客 七十九、hashCode 和 identityHashCode 的区别? 在Java中,hashCode() 和 identityHashCode() 是两种不同的方法,…

基于D1开发板和腾讯云nginx服务器构建家庭视频监控方案

腾讯云服务器使用nginx搭建rtmp服务器 什么是nginx? nginx是一款优秀的反向代理工具,通过nginx可以实现搭建高可用的轻量级web服务器,除此之外,通过Nginx自带的rtmp模块,也可以实现rtmp服务器的搭建。 安装nginx 安装编…

Leetcode 3133. Minimum Array End

Leetcode 3133. Minimum Array End 1. 解题思路2. 代码实现 题目链接:3133. Minimum Array End 1. 解题思路 这一题由于要求所有的array当中所有的数字的与为目标值,因此目标值当中的1的位必须保证所有的数均为1,剩下的位置只需要保证有一…