My Labs! C++

Work is Worth Doing of Worth Doing Well.

[注释]是以被编译器视为单独的空格字符并且忽略其他的正斜线/星号组合(/*)开始的字符串序列。注释能够包括任何来自于可呈现字符集的字符组合,包括换行符,但是排除[注释结束]分界符(*/)。注释可以占据多行但是不能被嵌套。

注释可以出现在允许空格字符的任何地方。因为编译器会把注释视为单独的空白字符,你不能在符号中包括注释。编译器会忽略注释中的文字。

使用注释来编写代码文档。这个范例是一个被编译器接受的注释:

/* 包含关键字(比如 for 和 while)的注释不会产生错误。 */

注释可以出现在与代码声明相同的行:

printf( "Hello\n" );  /* 可以在这里注释 */

你可以选择在功能或者程序模块之前加上描述注释块:

/* MATHERR.C 说明了为数学功能而编写的
 * 一个错误程序。
 */

因为注释不能包括被嵌套的注释,这个范例会导致一个错误:

/* 这个程序之外的注释测试

   /* 打开文件 */
    fh = _open( "myfile.c", _O_RDONLY );
    .
    .
    .
 */

错误产生的原因是编译器只认可第一个 /*,在[打开文件]之后,作为注释的结尾。它尝试处理余下的文字并且当它发现 /* 出现在注释之外的时候就会导致一个错误。

虽然你可以使用注释来为测试目标而呈现特定的非活动代码行,预处理器指令 #if 和 #endif 以及条件编译是这个任务的有用选择。关于更多信息,请参考[预处理器参考]中的[预处理器指令]。

Microsoft 特定

Microsoft 编译器同样支持以两个正斜线(//)作为开始的单行注释。如果你使用编译选项 /Za(ANSI 标准),这些注释会产生错误。这些注释不可以扩展到第二行。

// 这是一行有效的注释

以两个正斜线(//)开始的注释终止于下一个没有冠以转码字符的换行符。在下一个范例中,换行符被冠以一个反斜线(\),创建了一个转码序列。这个转码序列导致编译器把下一行视为上一行的一部分。(关于更多信息,参考[转码序列]。)

// 我的注释 \
    i++;

因此,i++; 声明就超出了注释。

Microsoft C 默认时启用了 Microsoft 扩展。使用 /Za 来禁用这些扩展。

结束 Microsoft 特定
posted on 2007-03-17 15:22 Laeb 阅读(951) 评论(0)  编辑 收藏 引用 所属分类: C 语言参考 / C 元素