摘要
本课把最小的 C++ 程序拆成若干部分,并说明每一部分的作用。包含指令声明程序依赖库的哪些部分,每个组件都要求包含自己的头文件,即使有时另一个头文件会把它“间接”带进来;函数 main 是入口点,它的返回值就是系统收到的退出码;命名空间 std 汇集了库中的名字,本课程总是连同前缀一起书写它们;语句以分号结束,花括号把语句组成块,注释说明代码本身没有说出的东西。本课最后介绍本课程所有程序都遵循的风格指南,以及如何阅读使用 std::cout 和 std::endl 的他人代码。
学习目标
- 在程序中辨认包含指令、函数
main、语句、块和注释,并说明各自的作用。 - 解释
#include做什么,以及为什么库的每个组件都要求包含自己的头文件,即使在某个特定编译器上程序不包含它也能编译。 - 根据编译器的消息(从第一条读起),改正有结构错误(花括号未闭合、缺少分号、漏掉头文件)的程序。
- 按本课程的风格指南改写程序,并说明每处修改的理由。
最小的程序
在前一课中,我们编译并运行了一个程序,却没有细看它。现在逐行阅读它,因为每一行都回应一项不同的要求:一行出自语言,一行出自操作系统,一行出自阅读代码的人。程序如下。
// 第一个程序:输出一行,然后结束。#include <print>int main(){ std::println("你好,世界");}你好,世界第一行是注释:它以两个斜杠开始,一直延续到行尾,编译器会丢弃它;它是写给阅读程序的人看的。第二行是包含指令:它要求在编译之前纳入头文件 <print>,标准库在其中声明了 std::println。空行没有任何作用;它把程序的准备部分与内容分开。第四行开启函数 main,即执行开始的地方,第五行的花括号开启它的块,这个块在最后一行闭合。块内只有一条语句,以分号结束:对 std::println 的调用,它输出引号之间的文本,然后换行。
应当注意,程序中没有任何让它结束的命令。执行到达 main 的最后一个花括号时就结束了,程序会告诉系统一切顺利;下文会说明这是怎样做到的。由此可知,五种部分就足以构成一个完整的程序:注释、指令、函数 main、块和语句。以下各节按这个顺序考察它们,只有注释与语句和块放在一起讲。
在问候程序中,指令是第 2 行;函数 main 占据第 4 行到第 7 行;它的块从第 5 行的花括号延伸到第 7 行的花括号;唯一的语句是第 6 行,唯一的注释是第 1 行。删去注释,程序照样编译,输出也一样;删去其他任何部分,程序就不再能编译,或者不再是一个程序。
正在加载内容…
已完成
登录账户以保存您的进度