C++ 编程(1) —— 简介
以下内容介绍如何学习使用现代 C++ 编程, 学习编写、编译和调试 C++ 程序所需的所有步骤。
谨记
成为某一领域专家不是一朝一夕的事,但只要你有一点耐心就能做到。
背景知识:
- C++ 是什么?
- C++ 是如何产生的?
- C++ 程序是如何工作的?
- 安装哪些软件来创建自己的程序
- 编写第一个 C++ 程序
计算机程序(通常也称为应用程序)是计算机为完成某些任务而可以执行的一组指令。创建程序的过程称为编程。程序员通常通过编写源代码(通常简称为代码)来创建程序,源代码是输入到一个或多个文本文件中的命令列表。
组成计算机并执行程序的物理计算机部件的集合称为硬件。当一个计算机程序被加载到内存中,并且硬件按顺序执行每条指令时,这被称为运行或执行程序。
编程语言介绍
- 机器语言
- 汇编语言
- 高级编程语言
机器语言
计算机的中央处理器(CPU)不能直接理解 C++ 语言的。CPU可以直接理解的有限指令集称为机器码(或机器语言或指令集)。
下面是一个机器语言指令示例:
1 | 10110000 |
计算机刚被发明时,程序员都是使用机器语言编写程序,然而,这个是一个非常困难和耗时的事情
汇编语言
机器语言对于人类来说非常难以阅读和理解,因此发明了汇编语言。
汇编语言中,每条指令都由一个简短的缩写(而不是一组比特)来标识,并且可以使用名称和其他数字。
如下是和上面机器语言对应的汇编语言
1 | MOV AL, 061H |
由于 CPU 无法执行理解汇编语言, 因此在计算机执行之前需要先把汇编语言翻译为机器语言,该过程是通过一个叫 汇编器 的程序来完成
高级语言
为了解决代码可读性和可移植性问题,于是产生了新的编程语言,像C、C++、Java、Python等,这些语言被称为高级语言。
如下是和上面机器语言对应的C/C++高级语言
1 | a = 97; |
与汇编程序一样,高级语言编写的程序在运行前必须翻译成计算机能理解的机器语言。
主要有两种方法:编译器和解释器。
编译器的编译过程如下
解释器的处理过程如下
解释器相对于编译器, 直接执行源代码中执行,不需要先编译为可执行文件,解释器更灵活,但是编译器产生的可执行文件的执行效果更高。
同时对于解释器,在每台机器上需要安装解释器来执行程序。
关于编译器和解释器的优势对比, 参考https://stackoverflow.com/a/38491646
- C/C++/Pascal是编译式语言
- Python/Perl/Javascript等是解释式语言
- Java是既可以解释式执行也可以先编译再执行语言
高级语言的一些好的特性:
- 更容易读写,接近自然语言
- 使用更少的指令(相对低层语言)
- 可以编译为适用于不同系统的可执行文件
C++ 语言介绍
C 语言发展史:
1972年,Dennis Ritchie 开发出 C 语言
1983年,美国国家标准学会(ANSI)成立了一个委员会,为 C 语言制定正式标准
1989年,发布 C89 标准,即通常所说的 ANSI C
1990年,国际标准化组织 (ISO) 采用了 ANSI C(稍作修改)。这一版本的 C 被称为 C90
1999年,国际标准化组织(ISO)发布了 C99 标准。C99 采用了许多已作为扩展功能进入编译器 或 已在 C++ 中实现的功能。
C++ 语言发展史:
1979年,贝尔实验室的 Bjarne Stroustrup 开发了 C++ 语言,是对 C 语言的扩展。
C++ 在 C 语言的基础上增加了许多新功能,也许最好将其视为 C 语言的超集,但严格来说并非如此(因为 C99 引入了一些 C++ 中不存在的功能)。C++ 的名声主要来自于它是一种面向对象的语言。
1998年,ISO 委员会发布 C++ 标准(即 ISO 标准委员会批准了一份描述 C++ 语言的文件,以帮助确保所有编译器都遵守同一套标准)。
2003 年,该语言发布了一个小的更新版本(称为 C++03)。
此后,C++ 语言进行了五次重大更新(C++11、C++14、C++17、C++20 和 C++23),每次更新都增加了额外的功能。其中,C++11 增加了大量新功能,被广泛认为是该语言的新基准版本。今后,该语言预计每三年左右升级一次。
C++ 开发介绍
以下图示展示了 C++ 开发的基本流程
步骤1: 定义要解决的问题
这一步是要明确 做什么
步骤2: 设计问题的解决方法
这一步是要明确 怎么做
步骤3: 编写程序
为了完成程序编写,需要两样东西:编程语言知识和编辑器
步骤4: 编译源代码
使用 C++ 编译器,把 C++ 源代码编译为目标文件,即把 .cpp 文件编译为 .o 文件
步骤5: 链接目标文件和库
编译完成后,使用链接器把所有的目标文件(.o文件)组合在一起产生可执行文件
步骤6: 测试程序
运行产生的可执行文件,观测产生的输出是否符合预期
步骤7: 调试程序
如果程序不能正确工作,那么需要调试来找到问题并解决
C++ 集成开发环境(IDE)
集成开发环境(IDE)是一种软件,集成了编辑器,编译器,链接器和调试器功能,旨在简化程序的开发、构建和调试。
常见 C++ IDE 介绍
- Visual Studio (Windows 系统)
- Code::Blocks (Windows 和 Linux 系统)
- Visual Studio Code (Windows, macOS 和 Linux 系统)
- Xcode (macOS 系统)