美文网首页
登堂入室C++之开篇

登堂入室C++之开篇

作者: 杜凌霄 | 来源:发表于2023-02-03 10:43 被阅读0次

C++发展历史

1979: C++之父Bjarne Stroustrup在写毕业论文期间萌生念头;

1982: 正式开发第一个版本c++,定位为c with class

1985: 第一个c++的商业实现发布;

1989: C++ 2.0 发布;

1998: C++ 98发布,C++也正式标准化;

2003: C++03版本发布,是C++98版本的小修正版本;

2011: C++11版本发布。C++11之后的被统称为modern c++

2014: C++14版本发布,作为C++11的小修正;

2017: C++17版本发布;

2020: C++20版本发布,提出module,也属于跟C++11一样重大的改变。

C++是最好的语言吗?

很多地方,很多人,都在争论什么语言是最好的?

个人觉得哪有最好的语言,只有最适合你解决手头问题的语言。

比如要处理一下GoogleSheet,要生成一个几何变幻的GIF图像,python都是非常方便的,使用C++也能完成同样的事情,但是工作量要大很多;要写一个网站,php和go明显要比c和c++合适;如果要一个web服务持续处理高并发访问并不出现短暂的服务拥塞,那rust是比go要合适的。那如果我们要做图形图像处理,又还要兼顾系统管理,那么c++其实是更合适的。

根据问题选语言,方便解决当前问题的语言对于当前问题来说就是最好的语言。

C++配套工具

IDE

使用比较多的就是Xcode、Visual Studio;

构建系统

CMake、Premake、Ninja、scons等,个人习惯使用cmake,如果从陌生开始选择,也许premake是一个更简单优雅的选择。cmake配合android ndk的toolchain,以及在github上可以下载到的ios-cmake,可以做到不用任何IDE构建windows、mac、linux、android和ios的库和app,配合上vscode编写C++程序又快又方便。

格式化工具

程序要易读和可维护,注释和格式都是很重要的。注释就按照doxygen的规范写就好了,格式可以借助clang-format。在系统装好clang-format工具,然后编写一套适合自己的格式规范(不熟悉的话可以在google的clang-format上进行修改)放到源代码根目录下面,vscode每次保存的时候就格式化一下,把自己的双眼从杂乱的代码中解放出来。美和优雅,这时候需要的只是一个工具而已。

测试库

代码写得多的人才能真的体会到没有单元测试的代码就是噩梦这句话的含义。单元测试大家用得比较多的库就是GoogleTest(简称gtest)以及Catch2。个人更喜欢gtest。个人的忠告就是千万不要以为自己写代码多牛,你的单元测试会告诉你结果

静态代码检查

CppCheck、cpplint、PVS-Studio、include-what-you-use等。个人大多数时候使用cppcheck分析代码,直接配置在cmake构建链路里面,检查一下还是安全很多。偶尔也使用include-what-you-use,它可以帮你把那些写在代码里面但是没有用到的include找出来。

内存泄漏检测工具

windows上面Visual Leak Detector,linux上面Valgrind。比较坑的是valgrind在比较新的版本的mac系统上是没有办法使用了,从源码编都有问题,现在的解决办法是在docker里面装个linux系统来,有更好办法的同学欢迎一起讨论。

其它常见的库

OpenCV(图像处理)、Eigen(数学计算)、PCL(点云处理)等。详细列表可以参看awesome-cpp上面的介绍。

本文作者:杜凌霄

更多内容发布在公众号“探知轩”,欢迎关注讨论。

相关文章

  • 8-C++远征之继承篇-学习笔记

    C++远征之继承篇 开篇介绍 整个C++远征计划: 起航->离港->封装->继承 为什么要用继承? 为什么要有继承...

  • 慕课网-C++远征之继承篇(上)-学习笔记

    C++远征之继承篇 开篇介绍 起航->离港->封装->继承 为什么要用继承? 为什么要有继承? 基类 <---->...

  • C++系列开篇

    作为开发语言,C++是复杂的。C++的整个体系就更加复杂了。本系列文章将个人学习C++过程中认为需要整理的东西分门...

  • 斋化之登堂入室

    斋化系列之八:登堂入室 华夏民族的智慧浩如烟海,其中登堂入室是真正的中庸之道的具象。 登堂是第一步,没有传承的人是...

  • 晚安

    新年开篇,老王的这篇推文暗藏商机,有流量有文采,有情商有智商,于是商业性就不用边缘化,而是紧跟锣鼓点子地登堂入室。...

  • C++的开篇章

    C++对C的扩展 类型的增强 类型检查上图: 布尔类型的优化在C语言中没有布尔类型,逻辑真假通常用 0 和非 0 ...

  • 《论语 先进》各言其志

    《论语》中有好多金句成了现在常用的成语,如:过犹不及,登堂入室,讷于言而敏于行,知之者不如好之者,好之者不如乐之者...

  • 喜来登(藏头诗)

    有道之士颜色温 喜悦内心怜芳馨 来之有缘且稍安 登堂入室乾坤宁 ​​​ ————有喜来登,温馨安宁 …………… 听...

  • 开篇2:C/C++ 内存布局与程序栈

    如果你对C/C++基本数据类型的内存模型没概念的话,可以先查看该传送门《开篇1:C/C++ 内存中的数据表示》,反...

  • 一个小小的编程小程序要不要来看一下!

    "扫雷外挂" 之C++ 程序篇 上篇《 “扫雷外挂” 之 理论篇》只讲了理论,我这次来看下C++的实现。 0.扫雷...

网友评论

      本文标题:登堂入室C++之开篇

      本文链接:https://www.haomeiwen.com/subject/yyfnhdtx.html