首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C 语言注释,实例讲解

双字符 /* 引入一条注释,除非它位于字符常量、字符串字面值或注释。一旦发现了这个标志着注释内容起始的符号后,后面的多字节字符将被逐个检查,直至找到标志注释内容结束的 */。

双字符 // 也会引入一条注释,除非它位于字符常量、字符串字面值或注释。一旦发现了这个标志着注释内容起始的符号后,后面的多字节字符将被逐个检查,直至换行符为止(注释内容不包含这个换行符)。

示例 1

/* 和 // 可以作为字符串字面值的一部分:

char *sl1 = "s/*l1";

char *sl2 = "s//l2";示例 2

像下面这样写会导致未定义的行为:

#include "//some.h"

编译器可能会报告以下错误,然后终止。

fatal error: //some.h: 没有那个文件或目录

compilation terminated.示例 3

下面一行是以 // 开始的一行注释,字符串 “*/” 是注释内容。

//*/示例 4

/* 和 */ 可以嵌入到行内,不会对它们以外的内容产生影响。

double radius = D/*diameter*//2;

相当于:

double radius = D /2;示例 5

如果由于相邻的反斜线(\)和回车符导致两行合并为一个逻辑行,并且反斜线前面是注释符号,那么这是一个两行的注释。例如:

//\

int i;

或者:

/\

/ int i;

相当于两行的:

//int i;示例 6

如果 // 位于 /* 和 */ 之间,它们将作为注释内容而被忽略。

/*//*/ int i;

相当于:

int i;示例 7

// 后面的 /* 和 */ 将作为注释内容而被忽略。

int m = n//**/o

+ p;

相当于:

int m = n

+ p;示例 8

下面的写法并不能构成注释,相反,这会导致语法错误。

#define glue(x,y) x##y

glue(/,/) int k;

编译器会报告错误:

error: pasting "/" and "/" does not give a valid preprocessing token

glue(/,/) int k;

^

note: in definition of macro ‘glue’

#define glue(x,y) x##y

^

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OQV6bjXhU1EGdWFQiT4HyENw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券