zoukankan      html  css  js  c++  java
  • C++内联函数

    1. 内联函数的定义

      内联函数在定义时与普通函数基本一致,只是在函数值的类型前加”inline“关键字,定义方法:

        inline 函数值的类型 函数名 (形参及其类型列表)

        { 函数体 }

    本人自学,教材可能有点老,有问题的话求大家指正!!!谢谢!!!

    2. 内联函数与普通函数的区别和联系

    • 定义内联函数时增加了 inline 关键字;
    • 两者在程序中调用的方式和方法相同;
    • 当程序调用一个内联函数时,将该函数的代码直接插入到调用点执行。所以,调用过程中不存在程序流程的跳转和返回问题;普通函数反之;
    • 从调用机理看,内联函数可以加快程序代码的执行速度和效率并减少调用开销,但是增加了程序代码。

    3. 内联函数的限制

    • 内联函数的函数体内不能含有复杂的结构控制语句,如果含有,则编译程序将该函数视该函数同普通函数那样产生函数调用代码;
    • 递归函数不能被用做内联函数;
    • 内联函数中不能说明数组;
    • 内联函数一般适合于只有1~5行语句的小函数。

    例题:定义一个求两个整数中较小值的函数min(),要求定义成内联函数,然后在main函数中进行调用。

     1 #include<iostream>
     2 using namespace std;
     3 
     4 inline int min(int a, int b){ return a<b?a:b;}
     5 
     6 int main()
     7 {
     8         int a=2;
     9         int b=7;
    10         int c=4;
    11         cout << "a,b:" << min(a,b) << endl;
    12         cout << "b,c:" << min(b,c) << endl;
    13         cout << "c,a:" << min(c,a) << endl;
    14         return 0;
    15 }
    16 
    17 //菜鸟,求大家批评指教,代码编写习惯和规范等等!!!谢谢!!!

      运行结果如下: 

        a,b:2

        b,c:4

        c,a:2

    本人自学,教材可能有点老,有问题的话求大家指正!!!谢谢!!!

  • 相关阅读:
    tmux工具,终端复用
    使用sgdisk进行磁盘分区
    「Spring Boot 2.4 新特性」启动耗时详细监控
    「Spring Boot 2.4 新特性」启动耗时详细监控
    「SpringBoot2.4新特性」jar自动瘦身
    Spring Boot 2.4 新特性,全新的Cron表达式处理机制
    「Spring Boot 2.4 新特性」一键构建Docker镜像
    Spring Boot 接口幂等插件使用
    Druid 监控分布式解决方案
    Ehcache 入门详解 (转)
  • 原文地址:https://www.cnblogs.com/MichaelBin/p/4513186.html
Copyright © 2011-2022 走看看