精彩牛耳,用心缔造

程序员入门教程:学C/C++不能不知道的硬知识

作者: 编辑: 来源: 发布日期: 2019.04.11
信息摘要:
4月份发布的全球编程语言排行榜Java高居榜首,C屈居第二,C++紧随其后,C和C++的比例之和,超过Java5%,ytho借人工智能和De…

4月份发布的全球编程语言排行榜

Java高居榜首,C屈居第二,C++紧随其后,C和C++的比例之和,超过Java5%,python借人工智能和DevOps的东风,扶摇直上,新秀GO语言,投胎技术好,有个好爹,依托容器技术和K8S,迅速走红。

C++

C/C++能做什么

1.服务器开发工程师

2.人工智能

3.云计算工程师

4.信息安全(黑客反黑客)

5.大数据

6.数据平台

7.嵌入式工程师

8.流媒体服务器

9.数据控解

10.图像处理

11.音频视频开发工程师

12.游戏服务器

13.分布式系统

14.游戏辅助

C语言以过程式编程,比汇编更贴近人类思考方式,而迅速兴起,在性能上贴近于机器语言。

在开发效率和执行性能上做了一个平衡

在系统控制上,给开发人员更多的自由,这是他的优点,也是缺点。对于资深人员来说,有很大的发挥空间,但对于新手来说,就是踩不完的坑,学习成本极高,稍不小心就是内存泄漏,死锁。

因此,C语言主要应用场景在操作系统,如Linux;底层组件,如ceph;这些标准化程度高,性能要求苛刻的场景。

C++在C基础上,引入对象模型,将数据和方法有机的绑定在一起,比C语言更一步贴近人类思维模式。

引入模板编程,替换C中宏这样的语法糖

早期C编写的程序中,内联函数和宏满天飞,现在变成模板满天飞,在执行效率上不相上下,但在调试期,倒引入不少麻烦,实际上违反了接口和实现分离的原则。

C++在开发效率上要高于C,执行效率上略逊于C,因此在开发周期要求比较严格,性能要求高的场景,有他的发挥空间,比如游戏的端游,比如行情软件.在客户端,有C#和C++竞争,在服务端,有JAVA、python、go与C++竞争,所以C++的市场份额就比较尴尬。

C/C++由于底层绑定比较紧,所以在跨平台这块存在很高的难度,特别是大规模的软件系统,要考虑的可能性更多。

在boost逐渐发展壮大后,这些情况会逐渐好转。boost为了跨平台,不得不牺牲一些平台特性,在性能上也会有一定损失,因此在一些应用场景中,还会存在定制自己API库的场景存在,相较于之前没有boost时代,依然要好很多。

C/C++因为其自由度高,百花齐放,即使是同一个功能,也能整出个N多花样,开发人员需要在选择困难症中,痛并快乐着。这些状况,会随着标准化程度不断提高,而减少,但永远不会消失。

牛耳推荐资讯
教育厅公布线下复学通知,这期间做好这四件事

教育厅公布线下复学通知,这期间做好这四件事

一场突如其来的疫情似乎让一切放慢了脚步,但是“停课不停学”,深圳、广州、武汉、杭州、北京,湖北、云南、江苏……疫情期间,全国20多省市,通过搭建在线课堂,助力数千万学生“不停学”。近日,湖南省出台最新线下复课时间,预计在4月上旬至中旬陆续错峰开学。这个超长假期除了每天关注疫情外,线上学习也成了一......
2020-03-31
牛耳教育-Java开发稳步进阶之不容忽视的“索引”

牛耳教育-Java开发稳步进阶之不容忽视的“索引”

作为Java工程师,MySQL数据库的灵活运用是必须掌握的技能。而“索引”作为数据库的两大神器之一,有很多初学Java的同学在接触时感觉无从下手,接下来我们把MySQL数据库索引相关的知识点仔细梳理一遍。一、覆盖索引如果一个索引包含了满足SQL语句中字段与条件的数据,那么它就叫做覆盖索引。覆盖索引只需要在一棵索引......
2020-03-30
牛耳教育丨Java开发稳步进阶之JVM内存区域

牛耳教育丨Java开发稳步进阶之JVM内存区域

Java语言最重要的特点之一:跨平台使用,正是由于JVM的存在。想要Java开发稳步进阶,学JVM这条路绕不开。为什么要学JVM我们都知道,要做Java开发,必须在你的电脑上安装JDK才行,安装JDK之后里面会有一个JRE的目录,JRE提供了软件环境----JVM。在开发过程中当我们出现内存泄漏、内存溢出的时候我们不应该想到-Xm去设置......
2020-03-27

咨询热线

400-0731-162
  
    • *

    • *