1.3 注释简介【C++ Primer中文版(第5版)】

在程序变得更复杂之前,我们应该了解一下C++是如何处理注释(comments)的。注释可以帮助人类读者理解程序。注释通常用于概述算法,确定变量的用途,或者解释晦涩难懂的代码段。编译器会忽略注释,因此注释对程序的行为或性能不会有任何影响。

虽然编译器会忽略注释,但读者并不会。即使系统文档的其他部分已经过时,程序员也倾向于相信注释的内容是正确可信的。因此,错误的注释比完全没有注释更糟糕,因为它会误导读者。因此,当你修改代码时,不要忘记同时更新注释!

C++中注释的种类

C++中有两种注释:单行注释和界定符对注释。单行注释以双斜线(//)开始,以换行符结束。当前行双斜线右侧的所有内容都会被编译器忽略,这种注释可以包含任何文本,包括额外的双斜线。

另一种注释使用继承自C语言的两个界定符(/*和*/)。这种注释以/*开始,以*/结束,可以包含除*/外的任意内容,包括换行符。编译器将落在/*和*/之间的所有内容都当作注释。

注释界定符可以放置于任何允许放置制表符、空格符或换行符的地方。注释界定符可以跨越程序中的多行,但这并不是必须的。当注释界定符跨越多行时,最好能显式指出其内部的程序行都属于多行注释的一部分。我们所采用的风格是,注释内的每行都以一个星号开头,从而指出整个范围都是多行注释的一部分。

程序中通常同时包含两种形式的注释。注释界定符对通常用于多行解释,而双斜线注释常用于半行和单行附注。

 
 
  1. #include <iostream> 
  2. /*  
  3.  * 简单主函数:  
  4.  * 读取两个数,求它们的和  
  5.  */  
  6. int main()  
  7. {  
  8.     // 提示用户输入两个数  
  9.     std::cout << "Enter two numbers:" << std::endl;  
  10.     int v1 = 0v2 = 0; // 保存我们读入的输入数据的变量  
  11.     std::cin >> v1 >> v2; // 读取输入数据  
  12.     std::cout << "The sum of " << v1 << " and " << v2 
  13.                 << " is " << v1 + v2 << std::endl;  
  14.     return 0;  

在本书中,我们用楷体来突出显示注释。在实际程序中,注释文本的显示形式是否区别于程序代码文本的显示,依赖于你所使用的程序设计环境是否提供这一特性。

注释界定符不能嵌套

界定符对形式的注释是以/*开始,以*/结束的。因此,一个注释不能嵌套在另一个注释之内。编译器对这类问题所给出的错误信息可能是难以理解、令人迷惑的。例如,在你的系统中编译下面的程序,就会产生错误:
 

 
 
  1. /*  
  2.  * 注释对/* */不能嵌套。  
  3.  * "不能嵌套"几个字会被认为是源码,  
  4.  * 像剩余程序一样处理  
  5.  */  
  6. int main()  
  7. {  
  8. return 0;  

我们通常需要在调试期间注释掉一些代码。由于这些代码可能包含界定符对形式的注释,因此可能导致注释嵌套错误,因此最好的方式是用单行注释方式注释掉代码段的每一行。
 

 
 
  1. // /*  
  2. // * 单行注释中的任何内容都会被忽略  
  3. // * 包括嵌套的注释对也一样会被忽略  
  4. // */ 

1.3节练习

练习1.7:编译一个包含不正确的嵌套注释的程序,观察编译器返回的错误信息。

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

 
 
  1. std::cout << "/*";  
  2. std::cout << "*/";  
  3. std::cout << /* "*/" */;  
  4. std::cout << /* "*/" /* "/*" */; 

预测编译这些语句会产生什么样的结果,实际编译这些语句来验证你的答案(编写一个小程序,每次将上述一条语句作为其主体),改正每个编译错误。



吐舌头欢迎来我店里看看哦~~M2魅力女装 ~ 充值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值