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

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

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

2026/10/16 12:32:40 阅读更多 →
正则化不是玄学:从原理、调参到工程避坑的全链路解析

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

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

2026/10/16 10:59:46 阅读更多 →

最新新闻

Spring Boot整合Shiro权限框架实战:从认证到动态权限配置

Spring Boot整合Shiro权限框架实战:从认证到动态权限配置

1. 为什么在Spring Boot项目里选Shiro而不是别的权限框架先说个现实问题。做Java后端的人一旦涉及登录、权限控制,十有八九会在Shiro和Spring Security之间纠结。Spring Security背靠Spring官方生态,功能全但学习曲线陡峭;Shiro则轻巧、直观&…

2026/10/17 0:35:01 阅读更多 →
64位OpenGL开发必学:用GLAD加载器解决函数指针链接错误

64位OpenGL开发必学:用GLAD加载器解决函数指针链接错误

简介:面向激光与物理光学设计领域的 Glad 5.8(64位)演示资源包,适配需要开展激光器建模、光束传播仿真与谐振腔优化的工程师、科研人员及高校相关专业学生。资源内含完整示例与说明文档,可帮助用户熟悉几何光学追迹、菲…

2026/10/17 0:35:01 阅读更多 →
基于信息熵与互信息的新词提取原理与实战

基于信息熵与互信息的新词提取原理与实战

1. 项目概述:为什么新词提取不是“找高频词”那么简单?“学习NLP的第20天——基于信息熵和互信息的新词提取实现”,这个标题乍看像一份学习笔记,但背后藏着自然语言处理中最常被低估、也最容易被误用的核心能力之一:未…

2026/10/17 0:35:01 阅读更多 →
一张4090跑通Qwen2.5-7B大模型LoRA微调完整实操指南

一张4090跑通Qwen2.5-7B大模型LoRA微调完整实操指南

简介:面向具备机器学习基础的研究人员和开发者,这是一份基于Qwen2.5-7B-Instruct大模型微调的完整实操指南。内容围绕AutoDL 4090云GPU环境,系统讲解从环境搭建、社区镜像选择、HF镜像下载预训练模型,到使用LLaMA-Factory配置数据…

2026/10/17 0:35:01 阅读更多 →
GEO生成式引擎优化:从传统搜索到AI引用的宣发新范式

GEO生成式引擎优化:从传统搜索到AI引用的宣发新范式

这两年做媒介宣发,最明显的变化是:投放出去的稿子,用户到底看没看到,越来越说不清了。以前我们靠阅读量、搜索排名和外链数量做判断,现在这些指标还在,真正的转化路径却已经变了——很多人遇到问题不再去搜…

2026/10/17 0:34:00 阅读更多 →
善付通支付结算接入全攻略:从报文加解密到订单对账闭环

善付通支付结算接入全攻略:从报文加解密到订单对账闭环

简介:建设银行善付通支付结算接入文档是一份面向企业开发与财务人员的详细技术指南,适用于需要将善付通采购订单、销售订单、收付款及结算对账流程嵌入自有系统的场景。文档完整覆盖对接流程、数据传输规范、报文格式与数据加解密要求,并逐一…

2026/10/17 0:34:00 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →