欧易

欧易(OKX)

国内用户最喜爱的合约交易所

火币

火币(HTX )

全球知名的比特币交易所

币安

币安(Binance)

全球用户最多的交易所

Quora热议:如果有强大的C++编译器,请不要使用C语言

2022-10-09 17:47:05 2617

摘要:如果手头有一个强大的C++编译器,切勿使用C。如果需要,可以使用禁止C++的所有功能的编码约定,包括标准C ++库,异常,RTTI以及C++符号修饰。但是,C++具有许多可以编写代码的功能。更具可读性…无需额外费用,更易于维护...无需额外...

如果手头有一个强大的C++编译器,切勿使用C。

如果需要,可以使用禁止C++的所有功能的编码约定,包括标准C ++库,异常,RTTI以及C++符号修饰。

但是,C++具有许多可以编写代码的功能。


更具可读性…无需额外费用,

更易于维护...无需额外费用,

运行更快……无需额外费用,

开发速度更快……无需额外费用,

可以扩展并开放以进行关键变更…无需额外费用。

所谓成本,是指运行时性能,可执行文件大小和内存使用情况。但是,如果您愿意权衡取舍,那么事情可能只会变得更好。


一些更多的细节:

在最基本的层次上,可以从更丰富的语法和关键字中受益。例如auto,decltype,typename,using。在正确的上下文中嵌套信息。使用名称空间,限定常量,类型名和嵌套的typedef。还有一些语言功能可以消除C语言的冗长和晦涩之处:闭包vs f(void *),模板函数vs宏。

C程序是水平层,一层在另一层之上,抽象是一个void *。相同的信息需要反复编码,然后所有方面都反映了如何在一个方面实施这种更改。

在C++中,可以一次定义信息并将其传播以创建数据类型,匹配生产代码以及诊断所有这些维护类型安全且无运行时开销的信息。可以毫不费力地编写通用代码。由于重载,模板功能和类型特征,可以在不同的上下文中重用功能较小或较大的代码块,并可以任意组合。

这里的提示:C ++库之外的许多工具实际上不需要链接到C ++库二进制文件。


C ++编译器能够生成更好的优化代码的原因很多。强类型系统(查找强别名),使用const类型和const表达式。然后,用作智能宏的模板函数可以消除循环,并且许多元代码可以解决编译时和实际调用调用中的条件。

在不同的上下文中再次重用通用代码的能力意味着更少的代码编写。 C ++允许以较小的片段来破坏程序,从而可以进行更精细的测试和/或通过不同的横截面而不仅仅是层。测试是现代敏捷开发的基础。缺乏测试通常源于不良的可测试性,阻碍了开发,阻碍了重构并鼓励了技术债务的积累。

C的局限性倾向于使人们倾向于使用特定的分层代码。某些类型的抽象无法表达,因此位最终散布在代码库中并被复制。没有办法将它们作为功能实体一起进行测试。只要新功能适合现有体系结构,一切都将适中。当需要进行一种颠覆内部层次结构的改变时,这确实是一个痛苦。有很多代码重写,包括测试。风险很大。


总结一下

C ++具有许多小而强大的功能,这些功能累计产生了巨大的不同。它们中的许多易于掌握,可以在现有的C代码库中使用。其他可能在重构或技术债务清除期间添加。甚至元编程也可以逐渐丰富类似C的代码。

文章翻译自Quora

PS:另外对于学习编程或者正在工作的朋友,如果你想更好地提升你的编程能力乃至转行,学好C语言C++编程!弯道超车,快人一步!笔者觉得这里或许可以帮到你~

编程学习书籍分享:

编程学习视频分享:

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

点击下方【了解更多】获取更多学习资料哦~

版权声明:本站所有文章皆是来自互联网,如内容侵权可以联系我们( 微信:bisheco )删除!
友情链接
币圈社群欧易官网