C/C++ 应用领域

C 语言目前主要用于像操作系统一类偏底层的应用开发,包括像 Windows/Linux 这样的大型商业操作系统,以及嵌入式操作系统、嵌入式设备上的应用。还有一些开源的软件,也会选择 C 开发,这些系统主要优先考虑程序执行效率和生成的可执行文件的体积(C 代码生成的可执行文件体积相对更小),当然还有一些是历史技术选型问题,这类软件像 Redis、libevent、Nginx,目前像国内的电信服务商所使用的电话呼叫系统,一般也是基于一款叫 FreeSWITCH的开源 C 程序做的二次开发(项目地址:https://freeswitch.com/)。

C++ 的应用领域目前有三大类,第一类就是我们目前见到的各种桌面应用软件,尤其 Windows 桌面软件,如 QQ、安全类杀毒类软件(如金山的安全卫士,已开源,其代码地址:http://code.ijinshan.com/source/source.html)、各种浏览器等;另外就是一些基础软件和高级语言的运行时环境,如大型数据库软件、Java 虚拟机、C# 的 CLR、Python 编译器和运行时环境等;第三类就是一些业务型应用软件的后台,像游戏的服务器后台,如魔兽世界的服务器(代码地址:https://github.com/azerothcore/azerothcore-wotlk)和一些企业内部的应用系统。

与 Java、Python 等语言相比,C/C++ 语言是离操作系统最近的一种高级语言,因此其执行效率也比较高。C/C++ 语言的开发核心建立在直接调用操作系统 API 的基础上。

C++11,14,17,20

关于 C++11 常用一些知识点,这里也简单地列举一下。

  • auto 关键字
  • for-each 循环
  • 右值及移动构造函数 + std::forward + std::move + stl 容器新增的 emplace_back() 方法
  • std::thread 库、std::chrono 库
  • 智能指针系列(std::shared_ptr/std::unique_ptr/std::weak_ptr),智能指针的实现原理一定要知道,最好是自己实现过
  • 线程库 std::thread + 线程同步技术库 std::mutex/std::condition_variable/std::lock_guard 等
  • Lamda 表达式(Java 中现在也常常考察 Lamda 表达式的作用)
  • std::bind/std::function 库

其他的就是一些关键字的用法(override、final、delete),还有就是一些细节如可以像 Java 一样在类成员变量定义处给出初始化值。

 

C++ 是一门讲究深度的语言,其“深度”不是体现在会多少 C++ 语法,而是能够洞察您所写的 C++ 代码背后的系统原理。

 

 

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值