函数:重载、默认参数与内联
函数重载、默认参数与内联C 函数的扩展能力在 C 语言函数 中我们学习了函数定义、参数传递、返回值与递归。C 在此基础上增加了函数重载、默认参数、inline和函数模板使函数更加灵活强大。一、C 函数基础链接C 完全支持 C 风格函数定义、调用、值传递、指针传递、返回值、递归等。详见 C 第 09 篇。C 推荐大对象用const T传递避免拷贝见 第 04 篇。二、函数重载同一作用域内函数名相同但参数列表不同类型或个数编译器根据实参选择匹配版本#includeiostreamintadd(inta,intb){returnab;}doubleadd(doublea,doubleb){returnab;}intadd(inta,intb,intc){returnabc;}intmain(){std::coutadd(1,2)std::endl;// 调用 int 版std::coutadd(1.5,2.5)std::endl;// 调用 double 版std::coutadd(1,2,3)std::endl;// 调用三参数版return0;}重载规则仅返回值不同不能构成重载参数个数或类型必须不同C 不支持重载C 支持三、默认参数函数参数可指定默认值调用时可省略#includeiostreamvoidgreet(conststd::stringname,conststd::stringprefixHello){std::coutprefix, name!std::endl;}intmain(){greet(Alice);// Hello, Alice!greet(Bob,Hi);// Hi, Bob!return0;}规则默认参数从右向左连续void f(int a, int b 0, int c 0);合法默认参数在声明中指定定义中可省略默认参数与重载配合使用需谨慎避免歧义四、inline 函数inline建议编译器将函数体 inline 展开减少调用开销适用于短小的频繁调用函数inlineintsquare(intx){returnx*x;}定义通常放在头文件中现代编译器会自动 inline显式inline更多是 ODR 相关类内定义的成员函数默认为 inline五、函数模板初探编写与类型无关的函数编译器根据实参类型生成具体版本#includeiostreamtemplatetypenameTTmaximum(T a,T b){return(ab)?a:b;}intmain(){std::coutmaximum(3,5)std::endl;// intstd::coutmaximum(3.14,2.71)std::endl;// doublereturn0;}模板详解见 第 12 篇。六、constexpr 函数C11编译期可求值的函数constexprintfactorial(intn){return(n1)?1:n*factorial(n-1);}intarr[factorial(5)];// 120 元素数组编译期确定七、实战练习练习1重载 print编写print(int)、print(double)、print(const std::string)三个重载。练习2默认参数编写void draw(char ch *, int count 5)打印 count 个 ch。练习3函数模板编写模板函数swap(T a, T b)交换两值。八、总结与延伸本节重点回顾函数重载同名不同参C 不支持默认参数从右向左声明处指定inline建议内联短小函数适用函数模板templatetypename T泛型编程入门下节预告进入进阶阶段《类与对象面向对象基础》。延伸阅读C 语言函数C 速查 §5 函数与重载知识点卡片重载参数类型/个数不同仅返回值不同无效默认参数void f(int a, int b 0);template T func(T x);下一篇见

相关新闻

国内AI多模态技术突破与产业应用全景

国内AI多模态技术突破与产业应用全景

1. 国内AI模型的多模态崛起与技术背景2023年成为国内AI发展的分水岭,以文心一言、通义千问为代表的大模型在图像-文本联合理解、视频语义分析等典型多模态场景中展现出超越国际同行的表现。这种突破并非偶然,而是源于三个关键技术要素的成熟:…

2026/7/24 11:17:47 阅读更多 →
Spring Boot与Kafka整合实战:微服务消息队列最佳实践

Spring Boot与Kafka整合实战:微服务消息队列最佳实践

1. 为什么选择Spring Boot与Kafka组合在微服务架构盛行的今天,消息队列已成为系统解耦的标配工具。我经历过从ActiveMQ到RabbitMQ的技术迭代,最终在2018年将核心系统迁移到Kafka。这个决定背后有几个关键考量:首先是吞吐量需求。我们的订单系…

2026/7/24 22:47:05 阅读更多 →
正则化不是玄学:从原理、调参到工程避坑的全链路解析

正则化不是玄学:从原理、调参到工程避坑的全链路解析

1. 为什么 regularization不是“加个参数就完事”的玄学——一个老手在模型调优现场的真实复盘 你有没有过这种经历:花三天时间把特征工程做到极致,调参调到凌晨两点,模型在训练集上准确率98.7%,验证集也稳在95.2%,结果…

2026/7/25 8:53:45 阅读更多 →

最新新闻

Windows XP在2026年的生存指南:虚拟机部署、安全加固与兼容性实战

Windows XP在2026年的生存指南:虚拟机部署、安全加固与兼容性实战

如果你在2026年元旦,打开一台运行着Windows XP Home Edition的电脑,会看到什么?是经典的蓝天白云壁纸,还是那个熟悉的绿色开始按钮?更重要的是,在今天这个时代,运行一个官方支持早已结束、主流软件纷纷抛弃的操作系统,究竟是一种怎样的体验? 这不仅仅是怀旧。Windows…

2026/7/25 11:18:30 阅读更多 →
如何用Apate文件格式伪装工具轻松绕过传输限制:5个实用技巧

如何用Apate文件格式伪装工具轻松绕过传输限制:5个实用技巧

如何用Apate文件格式伪装工具轻松绕过传输限制:5个实用技巧 【免费下载链接】apate 简洁、快速地对文件进行格式伪装 项目地址: https://gitcode.com/gh_mirrors/apa/apate 你是否遇到过重要文件因格式限制无法上传到企业系统?或者担心隐私文件在…

2026/7/25 11:18:30 阅读更多 →
多模态AI数据资产的核心价值与管理实践

多模态AI数据资产的核心价值与管理实践

1. 多模态AI时代的数据资产价值重构当GPT-4可以同时解析文本和图像,当自动驾驶系统需要融合激光雷达点云与摄像头数据,我们正经历着从单模态到多模态AI的范式转移。在这个过程中,数据资产的角色发生了根本性变化——它不再只是训练模型的&quo…

2026/7/25 11:18:30 阅读更多 →
终极直播录制方案:DouyinLiveRecorder 40+平台一站式自动化录制指南

终极直播录制方案:DouyinLiveRecorder 40+平台一站式自动化录制指南

终极直播录制方案:DouyinLiveRecorder 40平台一站式自动化录制指南 【免费下载链接】DouyinLiveRecorder 可循环值守和多人录制的直播录制软件,支持抖音、TikTok、Youtube、快手、虎牙、斗鱼、B站、小红书、pandatv、sooplive、flextv、popkontv、twitca…

2026/7/25 11:18:29 阅读更多 →
PVZTools:植物大战僵尸1.0.0.1051版本终极增强工具完整指南

PVZTools:植物大战僵尸1.0.0.1051版本终极增强工具完整指南

PVZTools:植物大战僵尸1.0.0.1051版本终极增强工具完整指南 【免费下载链接】pvztools 植物大战僵尸原版 1.0.0.1051 修改器 项目地址: https://gitcode.com/gh_mirrors/pv/pvztools PVZTools是一款专为《植物大战僵尸》PC版1.0.0.1051版本设计的专业游戏增强…

2026/7/25 11:18:29 阅读更多 →
TI 68xx芯片PRCM模块实战解析:电源、复位与时钟管理核心寄存器配置

TI 68xx芯片PRCM模块实战解析:电源、复位与时钟管理核心寄存器配置

1. 项目概述与核心价值 在嵌入式系统,尤其是汽车电子和工业控制这类对可靠性和实时性要求极高的领域,芯片的启动、运行和休眠状态切换,绝非简单的上电开机。其背后是一套精密、复杂的电源、复位与时钟管理体系,我们通常称之为PRCM…

2026/7/25 11:17:29 阅读更多 →

日新闻

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:00:35 阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:00:35 阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:00:35 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/25 5:08:22 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 5:13:53 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻