c++中的内联函数inline用法实例

 更新时间:2019年09月12日 16:32:29   作者:小白  
在本篇文章里小编给大家整理的是关于c++中的内联函数inline用法实例以及相关知识点,有需要的朋友们学习下。

问题描述:类中成员函数缺省默认是内联的,如果在类定义时就在类内给出函数定义,那当然最好。如果在类中未给出成员函数定义,而又想内联该函数的话,那在类外要加上 inline,否则就认为不是内联的。内联函数的inline要加在函数前面,不可以加在声明前面。

class A
{
  public:void Foo(int x, int y) { } // 自动地成为内联函数
}
//正确写法:
// 头文件
class A
{
  public:
  void Foo(int x, int y);
}
// 定义文件
inline void A::Foo(int x, int y){} 

//错误写法:
inline void Foo(int x, int y); // inline 仅与函数声明放在一起
void Foo(int x, int y){}

1. 内联函数作用:为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了 inline 修饰符,表示为内联函数。

例子:

#include <stdio.h>
//函数定义为inline即:内联函数
inline char* dbtest(int a) {
  return (i % 2 > 0) ? "奇" : "偶";
} 
 
int main()
{
  int i = 0;
  for (i=1; i < 100; i++) {
    printf("i:%d  奇偶性:%s /n", i, dbtest(i));  
  }
}

内联函数是在程序编译的时候替换的方式加入程序中的。

2. 内联函数使用的限制:

inline 的使用是有所限制的,inline 只适合涵数体内代码简单的涵数使用,不能包含复杂的结构控制语句例如 while、switch,并且不能内联函数本身不能是直接递归函数(即,自己内部还调用自己的函数)。

代码较长,内部出现循环不适合使用内联函数。

3. 内联函数只是一个对编译器的建议,具体实不实现看编译器认为函数复不复杂。

4.内联函数最好放在头文件中。

以上就是本次介绍的全部知识点内容,感谢大家的学习和对脚本之家的支持。

相关文章

  • C语言实现歌手比赛系统

    C语言实现歌手比赛系统

    这篇文章主要为大家详细介绍了C语言实现歌手比赛系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • 简单掌握C++编程中的while与do-while循环语句使用

    简单掌握C++编程中的while与do-while循环语句使用

    这篇文章主要介绍了C++编程中的while与do-while循环语句使用,区别就是while是先判断再执行,而do-while是先执行再判断,需要的朋友可以参考下
    2016-01-01
  • C++条件语句和条件运算符的使用方法讲解

    C++条件语句和条件运算符的使用方法讲解

    这篇文章主要介绍了C++条件语句和条件运算符的使用方法讲解,是C++入门学习中的基础知识,需要的朋友可以参考下
    2015-09-09
  • 数据结构之数组Array实例详解

    数据结构之数组Array实例详解

    这篇文章主要介绍了数据结构之数组Array实例详解的相关资料,需要的朋友可以参考下
    2017-05-05
  • C++超详细分析函数重载的使用

    C++超详细分析函数重载的使用

    C++ 允许多个函数拥有相同的名字,只要它们的参数列表不同就可以,这就是函数的重载(Function Overloading),借助重载,一个函数名可以有多种用途
    2022-04-04
  • C++ COM编程之什么是组件?

    C++ COM编程之什么是组件?

    这篇文章主要介绍了COM编程之什么是组件?COM组件是以Win32动态链接库(DLLs)或可执行文件(EXEs)的形式发布的可执行代码,需要的朋友可以参考下
    2014-10-10
  • c++调用python实现图片ocr识别

    c++调用python实现图片ocr识别

    所谓c++调用python,实际上就是在c++中把整个python当作一个第三方库引入,然后使用特定的接口来调用python的函数或者直接执行python脚本,本文介绍的是调用python实现图片ocr识别,感兴趣的可以了解下
    2023-09-09
  • 浅析C++中boost.variant的几种访问方法

    浅析C++中boost.variant的几种访问方法

    variant类型在C++14并没有加入,若想在不支持C++17的编译器上使用variant类型,我们可以通过boost的variant类型,variant类型可以表示任意一种类型和any类型有些相似,但还是有些区别下面将浅谈variant的几种访问方法,感兴趣的朋友们下面来一起看看吧。
    2016-10-10
  • 浅谈c++调用python链接的问题及解决方法

    浅谈c++调用python链接的问题及解决方法

    下面小编就为大家带来一篇浅谈c++调用python链接的问题及解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • C++高性能服务器框架之协程调度模块

    C++高性能服务器框架之协程调度模块

    这篇文章主要介绍了C++高性能服务器框架中的协程调度模块,文中通过代码示例介绍的非常详细,对我们的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-06-06

最新评论