设为首页 加入收藏

TOP

2.1.3 C++程序=预编译指令+程序代码+注释
2013-10-07 14:10:58 来源: 作者: 【 】 浏览:76
Tags:2.1.3 程序 编译 指令 代码 注释

2.1.3  C++(www.cppentry.com)程序=预编译指令+程序代码+注释

麻雀虽小,五脏俱全。大家别看我个头小,只有短短的几行代码,实现的功能也很简单,但是我同样拥有健全C++(www.cppentry.com)程序的"五官和四肢":预编译指令、程序代码和注释,如图2-5所示。大多数情况下,这三个基本部分都被放在一个扩展名为"cpp"的文本文件中,这个文件称为C++(www.cppentry.com) 源文件。源文件记录了我的"五官和四肢",规划了我的人生。源文件的编写者就是我的设计师了。通过修改源文件,可以改变我的面貌、我的人生轨迹,让我完成各种任务。

下面大家一起来仔细看看我的源文件,从中认识我的五官和四肢。

1. 预编译指令

预编译指令以"#"开头,它们是发给编译器的命令,在编译源代码之前完成。在我的源文件中,有两个相似的预编译指令,具体如下:

 
图2-5  C++(www.cppentry.com)程序=预编译指令+程序代码+注释
  1. #include "stdafx.h"  
  2. #include <iostream> 

其中,"#include"指令用于在编译之前将指定的文件嵌入该指令所在的位置,作为整个源程序的一部分。这里嵌入了"stdafx.h"和"iostream"两个文件,这样就可以使用由这两个文件所定义的功能了。通常用这种方式调用C++(www.cppentry.com)标准库的功能。注意,"#include"指令后的文件名有两种方式:如果使用""""来表示一个文件名,则预处理器在处理这个指令的时候,将首先在当前目录下搜索这个文件,如果这个文件不存在,则继续在项目的包含目录下搜索这个文件;如果使用"<>"来表示一个文件名,预处理器则会直接在项目的包含目录下搜索这个文件。所以,通常使用""""来嵌入当前项目目录下的文件,使用"<>"来嵌入各种项目包含目录下的库文件。

2. 程序代码

程序代码主体由若干C++(www.cppentry.com)语句构成,可以说语句是程序的基本构成单位。在C++(www.cppentry.com)中,每条语句用分号";"结束。在我的源文件中,第一个C++(www.cppentry.com)语句是:

  1. using namespace std; 

这条语句表示我所使用的名字空间是std。所谓名字空间,就是标识符的上下文。同一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。就像张家村有一个人叫陈良乔,而李家村也有一个人叫陈良乔一样,大家在称呼这个人的时候,必须明确地说明这个"陈良乔"到底是张家村的还是李家村的。所以,这里也必须说明使用的是std名字空间下的各种标识符,这样编译器就知道程序代码中使用的标志符,例如cout、endl等,都是std名字空间下的标识符。

接下来就进入我的核心部分_tmain()函数了。这里_tmain()函数只有两条简单的语句。第一条语句是

  1. cout<<"Hello World!"<<endl

cout是定义在头文件"iostream"中的一个输出流对象,它是C++(www.cppentry.com)标准库预定义的对象,包含很多有用的输出功能。前面使用"#include"预编译指令包含"iostream"就是为了使用这个功能。关于输入/输出流,会在以后的章节中做更详细的介绍,这里只要知道这条语句可以输出字符串到屏幕上即可。

第二条语句是

  1. return 0; 

它表示程序成功执行完毕,返回一个值。到这里,_tmain()函数执行结束,我的生命也会在此终结。

3. 注释

注释是源代码的编写者为了提高程序的可读性写下的关于代码的一些说明,注释不会对程序的功能产生影响。在C++(www.cppentry.com)中,可以使用"//"和"/**/"两种符号将一段文字表示为注释。"//"是单行注释符,"//"之后直到换行的所有内容都属于注释。例如:

  1. // 这是一行注释  
  2. “/*”和“*/”总是成对出现的,出现在这对符号之间的所有内容都属于注释。例如:  
  3. /*  
  4. 这是一段注释  
  5. */  

从功能上讲,注释一般分为序言性注释和解释性注释。序言性注释多位于程序源文件的开始,用来说明程序的文件名、用途、编写时间、维护历史等。在上面的例子中,第一行注释是序言性注释,它说明了源文件的名字及功能,例如:

  1. // HelloWorld.cpp:定义控制台应用程序的入口点。 

序言性注释被广泛用于大型的项目中。通常,每个项目都有自己定义的序言性注释格式,用来向阅读者说明一些必要的信息。下面是从一个实际的项目中摘录的一段序言性注释,它说明了源文件的名字、作用、创建时间、作者及其联系方式、文件的修改历史等信息,帮助阅读者理解代码。大家可以以此为模板,编写自己的序言性注释。

  1. ////////////////////////////////////////
    ///////////////////////////////  
  2. // AppDataView.cpp : implementation file  
  3. //   
  4. //CAppDataView  
  5. //  This view is designed to display the App Data  
  6. //  
  7. // Version: 2.1  
  8. // Date: September 2001  
  9. // Author: Chen Liangqiao  
  10. // Email: chenlq@live.com  
  11. // Copyright (c) 2002. All Rights Reserved.  
  12. //  
  13. //   History:  
  14. /*  
  15. 27.09.2001       Chen Liangqiao      
  16.                      Added OnCreate(), OnUpdate():  
  17.                         Added usage of mesh tracer layers   
  18.                         Added bugfix for Graphics zoom error  
  19. 30.10.2001       Chen Liangqiao      
  20.                      Changed order of MPR View only in _TORCHTONAV  
  21. 08.11.2001       Jia Wei      
  22.                         Added EUpdateReason, 
    used for UpdateAllView(),  
  23.                         Added voxel trafo,  
  24.                         Changed the control
    panel due to new CTestCtrl  
  25. */  
  26. ///////////////////////////////////////////////////////////////////////  

与序言性注释不同,解释性注释多分散于程序的各个部分,用来向阅读者解释代码的含义,说明一些必要的问题等。例如,上面例子中的注释:

  1. //在屏幕上显示"Hello World!"  
  2. cout<<"Hello World!"<<endl

这句解释性注释用来向阅读者说明其下代码的功能是输出字符串"Hello World!"。

最佳实践:什么是好的注释

虽然程序的注释并不影响程序功能的实现,编译器也不会去阅读我们的注释,但是好的注释可以增加程序的可读性,使程序易于维护。谁都不愿意维护一份没有注释的代码,那无异于阅读天书。那么,什么样的注释才是好注释呢?

注释是对代码的"提示和说明",当认为代码难于理解的时候,或者需要特别说明的时候,就应该添加注释。但是,要防止注释过多。注释只是简短的说明性语句,不是文档。程序的注释不可喧宾夺主,注释太多会让人眼花缭乱。如果代码的含义很清楚,则不必加注释,否则多此一举,令人厌烦,例如:

  1. i++;   // i加1 

另外,应该养成良好的代码注释习惯。编写代码时添加必要的注释,修改代码时修改相应的注释,删除无用的注释,保证注释与代码的一致性。

注释应当准确、易懂,避免二义性。错误的注释不但无益而且有害。

注释的位置应与被描述的代码相邻,可以放在代码的上方或右方,不可放在下方。例如:

  1. // 创建MemoryBlock对象  
  2. // 对下方的代码进行注释  
  3. MemoryBlocka(3);  
  4. MemoryBlockb(6);  
  5. swap(a,b); // 交换两个对象,对左侧的代码进行注释

如果代码比较长,特别是有多重嵌套时,应当在某些段落的结束处加注释,以便于阅读。例如,一个多重循环的代码及其注释如下:

  1. for ( int i = 0; i < 100; ++i )  
  2. {  
  3.     for ( int j = 0; j < 100; ++j )  
  4.     {  
  5.         // 算法处理...  
  6.     } // for ( int j = 0; j < 100; ++j ) 循环结束  
  7. } // for ( int i = 0; i < 100; ++i ) 循环结束  

虽然程序的注释并不影响程序的功能,但是可以增强代码的可读性。注释是C++(www.cppentry.com)程序必不可少的部分。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2.1.5 程序的两大任务C++程序的执.. 下一篇2.1.1 用Visual Studio创建C++程序

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: