函数:重载、默认参数与内联
函数重载、默认参数与内联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/21 6:51:45 阅读更多 →
Spring Boot与Kafka整合实战:微服务消息队列最佳实践

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

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

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

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

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

2026/7/21 6:50:44 阅读更多 →

最新新闻

C++异常隔离设计:构建健壮接口与资源安全防护

C++异常隔离设计:构建健壮接口与资源安全防护

1. 项目概述:为什么我们需要“异常隔离”?在C的世界里摸爬滚打了十几年,我见过太多因为异常处理不当而导致的“血案”。一个看似功能完善的库,接口设计得花里胡哨,性能指标也相当亮眼,但只要调用方抛出一个…

2026/7/22 6:18:09 阅读更多 →
软件安全建议方案

软件安全建议方案

安全无底线,一票否决1. 遵循安全标准:确保应用软件开发符合《XXXXXXXXX移动APP安全开发标准及安全防护规范(试行)》和《应用系统安全设计与开发管理规范(试行)》的规定。2. 资产管理:所有IT系统…

2026/7/22 6:18:09 阅读更多 →
GitHub热搜API多语言实现与鉴权实践

GitHub热搜API多语言实现与鉴权实践

1. 项目概述最近在开发一个需要实时获取GitHub热门项目数据的应用时,发现云策API提供的GitHub热搜接口非常实用。这个接口不仅数据更新及时,而且提供了完善的鉴权机制和清晰的返回结构。本文将分享我从零开始使用这个API的完整过程,涵盖8种主…

2026/7/22 6:18:09 阅读更多 →
夫妻财产公证到一个人名下?夫妻财产公证怎么办理?

夫妻财产公证到一个人名下?夫妻财产公证怎么办理?

一、夫妻财产公证办理高频痛点很多夫妻处置房产、车辆、股权,或是规划婚内财产归属时,都会考虑办理夫妻财产公证,将共同财产约定到一个人名下。首次办理普遍会遇到不少难题,异地分居的夫妻凑时间跑窗口成本很高,不确定…

2026/7/22 6:18:09 阅读更多 →
Linux 进程管理详解

Linux 进程管理详解

Linux 进程管理详解 目录 进程介绍 进程是什么进程产生 - fork进程状态 查看进程 - ps 命令 常用选项查看特定进程进程排序 控制 jobs 前台进程和后台进程前后台切换nohup 和 screen 给进程发信号 信号介绍kill 命令pkill 和 pgrep 命令用户登录命令 特殊进程 僵尸进程孤儿…

2026/7/22 6:18:09 阅读更多 →
影刀RPA 等待机制详解:固定等待、条件等待、智能等待

影刀RPA 等待机制详解:固定等待、条件等待、智能等待

影刀RPA 等待机制详解:固定等待、条件等待、智能等待 作者:林焱 什么情况用 你的影刀流程点击"搜索"按钮后,立刻去获取搜索结果,结果获取到的是旧数据?页面跳转后元素还没加载出来就操作了,报&q…

2026/7/22 6:17:09 阅读更多 →

日新闻

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…

2026/7/22 0:00:26 阅读更多 →
微信Server酱:高到达率的应急通知方案实践

微信Server酱:高到达率的应急通知方案实践

1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…

2026/7/22 0:00:26 阅读更多 →
甲方要的“简洁“PPT,到底是简洁还是省事?

甲方要的“简洁“PPT,到底是简洁还是省事?

甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…

2026/7/22 0:00:26 阅读更多 →

周新闻

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

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

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

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

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

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

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

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

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

2026/7/21 8:25:39 阅读更多 →

月新闻