【C++】3.什么是C++[深蓝学院C++第1章]
一.来源
Cpp是C的扩展
关注性能的特点:
1.与底层硬件紧密结合,如大小端存储;
2.对对象生命周期的精确控制,如内存管理;
3.Zero-overhead Abstraction,不为未使用的语言特性付出成本(如虚函数),使用一些特性不一定付出运行时成本(如提取函数);
工程特性的特点:
1.拥有三种编程范式:面向过程、面向对象、泛型/元编程;
2.函数重载、异常处理、引用;
二.C++标准的工业界实现
Windows:MSVC
Linux:GCC/CLang
查询版本与汇编:https://godbolt.org/z/cKMjK3
三.开发环境与工具
环境:Visual C++/GCC(G++)/Clang
IDE:Visual Studio / CodeLite / Code::blocks / Eclipse…
工具网站:
cpp reference用于找语法等标准信息
Compiler explorer用于切换版本、获得汇编代码
C++ insights用于将新特性还原为指定版本的、等价的旧特性
Youtube上的cppcon
四.编译/链接模型
对应于解释型语言,cpp是一种编译型语言。
对于大型工程的业务分散、集成困难、修改耗时问题:

“分块处理”衍生出的概念:
1.定义/声明,在编译时只要声明了就好,不一定立即就要访问该数据
2.头文件/源文件,分管声明/定义和实现
3.翻译单元,应该被编译的内容,是去除一些#if、#ifdef的预处理语句,源文件+相关头文件-应该忽略的宏
4.一处理原则,在所在的翻译单元级只有一处定义
五.从编译到运行的流程
预处理、编译、汇编、链接、生成可执行程序
预处理:防止头文件被循环展开,防止被循环引用,#ifndef、#progma once
编译:编译优化等级,增量/全部编译
汇编:转汇编代码
链接:合并多个目标文件,关联声明和定义。链接种类:内部、外部、无链接
六.小结
1.C++是一门注重性能的程序设计语言
2.C++的标准经历了一系列的演化,还在发展
3.标准与具体实现之间存在差距
4.C++从源程序到可执行文件的过程是比较复杂的,中间每个阶段都有可能引入错误

浙公网安备 33010602011771号