一、注释的简介:
注释可以帮助人类读者理解程序。注释通常用于概述算法,确定变量的用途,或者解释晦涩难懂的代码段。编译器会忽略注释,因此注释对程序的行为或性能不会有任何影响。
虽然编译器会忽略注释,但读者并不会。即使系统文档的其他部分已经过时,程序员也倾向于相信注释的内容是真确可信的。因此,错误的注释比完全没有注释更糟糕,因为他会误导读者。因此,当修改代码时,不要忘记同时更新注释!
二、注释的种类:
C++中有两种注释:
1) 单行注释以双斜线(//)开始,以换行结束。当前双斜线右侧的所有内容都会被编译器忽略,这种注释可以包含任何文本,包括额外的双斜线。
2) 界定符对注释:这种注释继承来自C语言的两个界定符(/*和*/)。这种注释以/*开始,以*/结束,可以包含除*/外的任意内容,包括换行符。编译器讲落在/*和*/之间的所有内容都当作注释。
注释界定符可以放置于任何允许放置制表符、空格符或换行符的地方。注释界定符可以跨越程序中的多行,单这并不是必须的。当注释界定符跨多行时,最好能显示指出其内部的程序行都属于多行注释的一部分。我们一般采用的风格是,注释内的每行都以一个星号开头,从而指出整个范围都是多行注释的一部分。
程序中通常同时包含两种形式注释。注释界定符对通常用于多行解释,而双斜线注释常用于半行或单行附住。
1 #include <iostream> 2 /* 3 * 简单主函数: 4 * 读取两个数,求他们的和 5 */ 6 int main() 7 { 8 // 提示用户输入两个数 9 std::cout << "Enter two numbers:" << std::endl; 10 int v1 = 0, v2 = 0; // 保存我们读入的输入数据的变量 11 std::cin >> v1 >> v2; // 读取输入数据 12 std::cout << "The sum of " << v1 << " and " << v2 13 << " is " << v1 + v2 << std::endl; 14 15 /* 16 // 提示用户输入两个数 17 std::cout << "Enter two numbers:" << std::endl; 18 int v1 = 0, v2 = 0; // 保存我们读入的输入数据的变量 19 std::cin >> v1 >> v2; // 读取输入数据 20 std::cout << "The sum of " << v1 << " and " << v2 21 << " is " << v1 + v2 << std::endl; 22 //*/ 23 24 return 0; 25 }
在上面程序中,我们可以看到两种注释符的使用,或者说一般通用使用方法,其中程序的后半段是我特意加上去的,这个主要是用来程序调试时,注释掉我们暂时不需要但后面可能又要用的上的代码,所以不能删除。这里面的注释的精髓在第22行,即在注释界定符(*/)前加入单行注释符(//),这样的好处是,在我们想要进行多行注释时,只需要再我们需要多行注释前加入注释界定符(/*),形成界定符对注释,注释掉中间需要注释的内容。当我们不需要再对他们进行注释时,只需删除注释界定符(/*),而不需要去找后面的另一个注释界定符(*/),因为此时它已经被单行注释掉,这样从而节省我们不少时间及减少出错的几率。
三、注释界定符的注意事项:
界定符对形成的注释是以/*开始,以*/结束的。因此,一个注释不能嵌套另一个注释之内。编译器对这类问题所给出的错误信息可能是难以理解、令人迷惑的。例如,在我们的的系统中编译下面的程序,就会产生错误:
1 /* 2 * 注释对/* */不能嵌套。 3 * "不能嵌套"几个字会被认为是源码。 4 * 像剩余程序一样处理 5 */ 6 int main() 7 { 8 return 0; 9 }