1.3.5 简单C++(www.cppentry.com)程序的布局
图1.9展示了简单C++(www.cppentry.com)程序的布局。从编译器的角度看,换行和间隔 不必非要像例子中那样。编译器接受任何合理的换行和缩进风格。事实上,编译器甚至能接受许多不合理的换行和缩进风格。然而,程序的布局应该总是确保它的可读性。起始花括号{和结束花括号}单独占一行,会使这些标点符号更醒目。缩进每行语句并使其单独占一行,可以更容易地理解程序指令。以后的一些语句会比较长,以至于一行无法完全显示,这时就要稍微修改一下这种缩进和换行风格。你应该遵照本书范例的风格;在课堂上使用本书,请遵照教师指定的风格。
|
| 图1.9 一个简单C++(www.cppentry.com)程序的布局 |
在图1.8中,变量声明是以单词int开头的那一行。正如第2章要说明的那样,不一定要将变量声明统统放在程序开头,但那是一个很好的默认位置。除非有特别的理由放到其他地方,否则应该像图1.9和图1.8那样放在程序开头。语句是计算机要遵照执行的指令。在图1.8中,语句是以cout或cin开头的那些行,以及以total_peas和一个等号开头的那一行。语句通常也称为可执行语句,两种说法可以混用。注意,每个语句都以分号结尾。语句中的分号就像日常用语中的句号,用于标记一个句子的结尾。
就目前来说,可以认为前几行是在以一种奇怪的方式说"程序从此开始",但是可以稍微详细地解释一下它们。第一行代码如下:
- #include <iostream>
它称为include预编译指令,告诉编译器在哪里寻找与程序中使用的特定项目有关的信息。在本例中,iostream是一个库的名称,其中包含了输入和输出例程的定义。iostream本质上是一个文件,其中含有与这个库有关的基本信息。本章前面讨论的链接器会将iostream库中的目标码与程序的目标码合并起来。对于iostream库,这个过程在你的系统上可能是自动完成的。你迟早都会用到其他库。使用时,必须在程序开头的预编译指令中指定它们的名称。除此之外,在使用一些库时,要做的可能不只是在程序中放一条include预编译指令那样简单。但无论如何,在程序中使用任何一个库,都至少要为那个库添加一条对应的include预编译指令。预编译指令总是以符号#开头。有的编译器要求#的前后都不能有空格。所以,最保险的做法是在一行的最开头写下#,而且不要在#和单词include之间插入空格。
第2行代码进一步解释了刚才的include预编译指令:
- using namespace std;
这行代码指出:iostream中定义的名称要以"标准方式"进行解析(std就是标准的意思,它是standard的缩写)。本书稍后会更多地解释这一行。
第3行和第4行代码(如下所示)指出程序的main部分从这里开始:
- int main()
- {
正确说法是"main函数",而不是"main部分"。但是,这个区分的意义要等到第4章才会真正明白。花括号{和}标记程序main部分的开始与结束。它们不需要单独占一行,但为了方便找到它们,最好坚持让它们单独占一行。倒数第二行代码如下:- return 0;
它表示:"到这里就终止程序"。该行不一定位于程序末尾,但对于极其简单的程序,把它放到其他地方没有意义。有些编译器允许省略该行,在发现没有更多可执行语句时会自动终止程序。但是,另一些编译器要求必须包括这一行,所以最好还是习惯于包括这一行。该行的正式名称是return语句,可把它视为一个可执行语句,因为它也会要求计算机做某事。就目前而言,数字0对我们来说没有特别直观的含义,但它必须在那个地方。随着你更深入地学习C++(www.cppentry.com),就会真正明白它的含义。注意,虽然return语句表示要终止程序,但仍然要在程序的main部分末尾添加一个结束花括号}。