首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

1.3  关于注释

在程序变得更复杂前,我们应该明白C++如何处理注释commenmts。注释可以帮助阅读程序,通常用于概括算法、确认变量的用途或者阐明难以理解的代码段。注释并不会增加可执行程序的大小,编译器会忽略所有注释。

本书中,注释排成斜体以区别于一般程序文本。实际程序中,注释文本是否区别于程序代码文本依赖于编程环境的先进复杂程度。

C++中有两种类型的注释:单行注释和成对注释。单行注释以双斜线(//)开头,行中处于双斜杠右边的内容是注释,被编译器忽略。

另一种定界符,注释对(/**/),是从C语言继承过来的。这种注释以“/*”开头,以“*/”结尾,编译器把落入注释对“/**/”之间的内容作为注释:

#include <iostream>

/* Simple main function: Read two numbers and write their sum */

int main()

{

    // prompt user to enter two numbers

    std::cout << "Enter two numbers:" << std::endl;

    int v1, v2;             // uninitialized

    std::cin >> v1 >> v2; // read input

    return 0;

}

任何允许有制表符、空格或换行符的地方都允许放注释对。注释对可跨越程序的多行,但不是一定要如此。当注释跨越多行时,最好能直观地指明每一行都是注释的一部分。我们的风格是在注释的每一行以星号开始,指明整个范围是多行注释的一部分。

程序通常混用两种注释形式。注释对一般用于多行解释,而双斜线注释则常用于半行或单行的标记。

太多的注释混入程序代码可能会使代码难以理解,通常最好是将一个注释块放在所解释代码的上方。

代码改变时,注释应与代码保持一致。程序员即使知道系统其他形式的文档已经过期,还是会信任注释,认为它会是正确的。错误的注释比没有注释更糟,因为它会误导后来者。

注释对不可嵌套

注释总是以/*开始并以*/结束。这意味着,一个注释对不能出现在另一个注释对中。由注释对嵌套导致的编译器错误信息容易使人迷惑。例如,在你的系统上编译下面的程序:

#include <iostream>

/*

 * comment pairs /* */ cannot nest.

 * "cannot nest" is considered source code,

 * as is the rest of the program

 */

int main()

{

    return 0;

}

当注释掉程序的一大部分时,似乎最简单的办法就是在要临时忽略的区域前后放一个注释对。问题是如果那段代码已经有了注释对,那么新插入的注释对将提前终止。临时忽略一段代码更好的方法是,用编辑器在要忽略的每一行代码前面插入单行注释。这样,你就无需担心要注释的代码是否已包含注释对。

习题                                                                               

习题1.7  编译有不正确嵌套注释的程序。

习题1.8  指出下列输出语句哪些(如果有)是合法的。

    std::cout << "/*";

    std::cout << "*/";

    std::cout << /* "*/" */;

预测结果,然后编译包含上述三条语句的程序,检查你的答案。纠正所遇到的错误。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论