0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

同样是函数,在C和C++中有什么区别

学益得智能硬件 来源:未知 2024-11-29 10:25 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

同样是函数,在 C 和 C++ 中有什么区别?

第一个返回值。

C语言的函数可以不写返回值类型,编译器会默认为返回 int。

但是 C++ 的函数,除了构造和析构这两个特殊的函数,必须得写上返回值,即使没有数据返回,也得写 void。

第二个函数名。

C语言的函数名绝对不能重名,除了用上 weak 这样的黑科技。同一个项目中,函数重名就会提示重复定义。

C++因为函数重载的存在,函数名可以相同,只要参数有区别就行。这两个函数构成重载的关系。

第三个函数参数。

C++中的函数参数花样比较多。

比如C++支持占位参数,参数可以只写个类型,但是没有名字,调用函数的时候,必须得给占位参数传参。

C语言原来不支持占位参数,不过就在最新的 C23 里面,也加入了占位参数,使用新一点的编译器,编译也能通过。

除了占位参数,还有默认参数,这个功能比占位参数更实用。

所谓默认参数,就是可以给函数参数提供一个默认值,调用函数的时候,如果没有提供实参,就会使用默认参数。

默认参数真的是个好东西。

第四个,函数模板。

这个概念也是只有C++才有。

对于函数体一样,只有类型不一样的函数,C++引入了模板机制,一个函数,可以用于多个场景。

第五个,函数指针。

C语言和C++都有函数指针的概念,只是 C++ 不仅有函数指针,还有函数对象。

这是两个完全不同的概念,一个是指针,一个是被重载过函数调用运算符的类。

算法里面,都可以用来指定规则。

相比C语言的函数,C++要复杂很多。还有哪些区别,欢迎大家在评论区交流。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4422

    浏览量

    67853
  • C++
    C++
    +关注

    关注

    22

    文章

    2131

    浏览量

    77381

原文标题:同样是函数,在C和C++中有什么区别

文章出处:【微信号:学益得智能硬件,微信公众号:学益得智能硬件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用VectorCAST/C++的AI辅助测试功能

    从2026版本开始,VectorCAST/C++推出首批AI辅助测试功能,旨在帮助开发团队解决单元测试过程中的两个核心难点:
    的头像 发表于 04-27 14:37 183次阅读

    C++与lua联合编程

    现代软件工程的庞大架构中,纯粹的 C++ 与动态脚本语言之间的关系,早已演变成一场精密的“商业分工”。C++ 扮演着提供极致性能的“底层重工业”,而 Lua 则充当着实现灵活业务逻辑的“轻量级
    发表于 04-19 16:27

    keil实现cc++混合编程

    参考touchgfx生成的代码,发现了一个不需要添加--cpp11 参数的解决方法,具体操作如下。 一、创建一个空白的C文件和头文件头文件中定义c++文件中需要调用的函数,如图所示
    发表于 01-26 08:58

    C语言与C++区别及联系

    是面向过程语言,而C++是面向对象语言。说CC++区别,也就是比较面向过程和面向对象的区别
    发表于 12-24 07:23

    同样是乐鑫科技ESP32-P4C5开发板,到底应该怎么选?选型指南在这!

    更多都是用乐鑫科技ESP32-P4和ESP32-C5芯片设计的开发板,启明云端为什么要设计两款?WT99P4C5-S1和WTDKP4C5-S1有什么区别?在产品选型时又该如何选?
    的头像 发表于 12-15 18:03 1960次阅读
    <b class='flag-5'>同样是</b>乐鑫科技ESP32-P4<b class='flag-5'>C</b>5开发板,到底应该怎么选?选型指南在这!

    CC++之间的联系

    控制能力,这一点与C语言相似,使得它们系统编程、嵌入式系统等领域都得到广泛应用。 3、发展历程: C++正是C语言的基础上逐步发展起
    发表于 12-11 06:51

    C语言和C++之间的区别是什么

    区别 1、面向对象编程 (OOP): C语言是一种面向过程的语言,它强调的是通过函数将任务分解为一系列步骤进行执行。 C++
    发表于 12-11 06:23

    C/C++条件编译

    条件编译是一种在编译时根据条件选择性地包含或排除部分代码的处理方法。 C/C++ 中,条件编译使用预处理指令 #ifdef、#endif、#else 和 #elif 来实现。常用的条件编译指令有
    发表于 12-05 06:21

    C++程序异常的处理机制

    运行代码进行分离,使得程序更加模块化;另一方面,C++的异常处理可以不需要异常处理异常发生时的同一个函数,而是可以更上层合适的位置进行处理。 下面,我们一起来看看
    发表于 12-02 07:12

    技能+1!如何在树莓派上使用C++控制GPIO?

    使用树莓派时,你会发现Python和Scratch是许多任务(包括GPIO编程)中最常用的编程语言。但你知道吗,你也可以使用C++进行GPIO编程,而且这样做还有不少好处。借助WiringPi
    的头像 发表于 08-06 15:33 4504次阅读
    技能+1!如何在树莓派上使用<b class='flag-5'>C++</b>控制GPIO?

    C语言中的内联函数与宏

    C编程中,内联函数和宏都用于避免函数调用的开销并编写可复用的逻辑部分,但它们工作方式和安全性方面存在显著差异。
    的头像 发表于 07-25 15:10 2072次阅读
    <b class='flag-5'>C</b>语言中的内联<b class='flag-5'>函数</b>与宏

    C++ 与 Python:树莓派上哪种语言更优?

    Python是树莓派上的首选编程语言,我们的大部分教程都使用它。然而,C++物联网项目中同样广受欢迎且功能强大。那么,树莓派项目中选择哪种语言更合适呢?Python因其简洁性、丰富
    的头像 发表于 07-24 15:32 1110次阅读
    <b class='flag-5'>C++</b> 与 Python:树莓派上哪种语言更优?

    基于LockAI视觉识别模块:C++目标检测

    本文档基于瑞芯微RV1106的LockAI凌智视觉识别模块,通过C++语言做的目标检测实验。本文档展示了如何使用lockzhiner_vision_module::PaddleDet类进行目标检测,并通过lockzhiner_vision_module::Visualize函数
    的头像 发表于 06-06 13:56 1020次阅读
    基于LockAI视觉识别模块:<b class='flag-5'>C++</b>目标检测

    CY7C65214和CY7C65211/3/5有什么区别

    CY7C65214 和其他 USB 串行桥接控制器之间有什么区别:CY7C65211、CY7C65213 和 CY7C65215? 社区有很
    发表于 05-29 06:49

    主流的 MCU 开发语言为什么是 C 而不是 C++

    单片机的地界儿里,C语言稳坐中军帐,C++想分杯羹?难喽。咱电子工程师天天跟那针尖大的内存空间较劲,C++那些花里胡哨的玩意儿,在这儿真玩不转。先说内存这道坎儿。您当stm32f4的
    的头像 发表于 05-21 10:33 1212次阅读
    主流的 MCU 开发语言为什么是 <b class='flag-5'>C</b> 而不是 <b class='flag-5'>C++</b>?