【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++从源程序到可执行文件的过程是比较复杂的,中间每个阶段都有可能引入错误

posted @ 2023-02-07 17:27  啊原来是这样呀  阅读(37)  评论(0)    收藏  举报