当前位置: 首页 > article >正文

C++函数初识

文章目录

    • 一、形参带默认值的函数
    • 二、inline内联函数
    • 三、函数重载

一、形参带默认值的函数

  1. 给默认值的时候,从右向左给;
  2. 调用效率的问题;
  3. 定义处可以给形参默认值,声明也可以给形参默认值;
  4. 形参给默认值的时候,不管是定义处给,还是声明处给,形参默认值只能出现一次。
	int sum(int a, int b = 20);
	int sum(int a = 10, int b);

二、inline内联函数

inline内联函数 和 普通函数的区别:

  • inline内联函数在编译过程中,就没有函数的调用开销了,在函数的调用点直接把函数的代码进行展开处理了;
  • inline内联函数不再生成相应的函数符号;
  • 但不是所有的inline都会被编译器处理成内联函数,inline只是建议编译器把这个函数处理成内联函数(比如递归、函数复杂等情况);
  • debug版本上,inline是不起作用的;inline只有在release版本下才能出现
    可通过g++ -c main.cpp -o2(不能-g带调试信息)、objdump -t main.o等命令查看符号表。
#include <iostream>
using namespace std;

inline int sum(int x, int y) { //*.o sum_int_int .text
    return x + y;
}

int main() {
    int a = 10;
    int b = 20;
    int ret = sum(a, b); 
    // 此处有标准的函数调用过程:参数压栈,函数栈帧的开辟和回退过程
    // 有函数调用的开销
    // x+y mov add mov 1000000 x+y

    cout << "a+b=" << ret << endl;

    return 0;
} 

三、函数重载


http://www.kler.cn/a/517862.html

相关文章:

  • unity.NavMesh Agent
  • 安装Office自定义项,安装期间出错
  • C# OpenCV机器视觉:利用CNN实现快速模板匹配
  • Cpp::静态 动态的类型转换全解析(36)
  • 【数据分享】1929-2024年全球站点的逐月平均能见度(Shp\Excel\免费获取)
  • VSCode下EIDE插件开发STM32
  • 20250124 Flink中 窗口开始时间和結束時間
  • MySQL内存优化
  • 音频 PCM 格式 - raw data
  • 代码随想录day3
  • 速通Docker === Docker 镜像分层存储机制
  • 消息队列篇--通信协议篇--网络通信模型(OSI7层参考模型,TCP/IP分层模型)
  • C语言自定义数据类型详解(一)——结构体类型(上)
  • GPU算力平台|在GPU算力平台部署百川大模型(Baichuan2)的应用教程
  • ABB CC-Link IE FB协议与WTW Modbus TCP协议汽车涂装生产线的精准协作方案改造
  • ambari-2.8源码编译
  • 双北斗ntp网络时钟服务器、双北斗网络时钟同步系统、双北斗ntp协议时钟服务器
  • Adobe的AI生成3D数字人框架:从自拍到生动的3D化身
  • 复习动态规划入门
  • 龙蜥社区加入智算产业联盟,助力构建开放、包容、普惠的 AI 新生态
  • 【含开题报告+文档+PPT+源码】基于java web的篮球馆管理系统系统的设计与实现
  • 计算机网络 (58)无线局域网WLAN
  • 综合能源规划仿真软件
  • 【负载均衡式在线OJ】加载题目信息(文件版)
  • WinDBG查找C++句柄泄露
  • 剑指Offer|LCR 044.在每个树行中找最大值