C陷阱与缺陷:如何判断编译器是否支持嵌套注释?

摘要:
提示:在/**/之间,双引号“”是注释的一部分;在双引号““”之间,/**/也是一个字符串。以下引用答案是从“C陷阱和缺陷”中提取的:对于/*/**/“*/”/*“/*/,支持嵌套返回“*/“,不支持返回“/*”;对于/*/*/0*/*/1,支持嵌套返回1,不支持返回0*1,即0。

题目要求:编写一个程序,无论是对于允许嵌套注释,还是不允许嵌套注释的程序,都能正常运行,但是产生的结果不一样。

提示:在/**/之间,双引号“是注释的一部分;在双引号”“之间,/**/又是字符串。

以下参考答案摘录自《C陷阱与缺陷》:

 对于/*/**/"*/"/*"/**/,支持嵌套返回 ”*/“(去除前后的两个注释),不支持返回 ”/*“(根据最近匹配原则);

 对于/*/*/0*/**/1,支持嵌套返回 1(去掉前面的两个注释),不支持返回 0*1,即0(去掉前后的两个注释)。

免责声明:文章转载自《C陷阱与缺陷:如何判断编译器是否支持嵌套注释?》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Unicode和ANSI之间转换 U2A/A2U轻松实现Algorithm: 最大公约数 最小公倍数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

解决ScrollView嵌套ListView冲突问题,并且添加阻尼效果

关于阻尼效果,之前的帖子已经有过详细介绍 主要说下ScrollView嵌套ListView冲突问题,由于Listview本身就是继承ScrollView而来的,所以在ScrollView里嵌套ScrollView肯定会发生冲突。 解决方案:重写ListView或者GridView的OnMesure 方法。 自定义ListView import androi...

【python系统学习12】函数

函数 函数是一堆组织好的、可重复利用的、用来实现某一功能的代码。 python中的input()、print()、type()、bool()、len()等都是函数。且是python的内置函数。 我们也可以封装自己的函数。 目录 目录 作用 函数定义 伪代码 示例代码 注意事项 函数调用 伪代码 示例代码 函数参数 参数传递 参数接收...

CDATA嵌套问题

在CDATA内部的所有内容都会被解析器忽略。一个 CDATA 部件以"<![CDATA[" 标记开始,以"]]>"标记结束。但是CDATA是不能够嵌套的。 因CDATA嵌套导致的XML解析错误的问题,参考网上处理方式,解决这个问题只需要将"]]>"替换成"]]]]><![CDATA[>",替换后文本作为CDATA参数传入...

初识npm

一、npm简介: npm全称为Node Package Manager,是一个基于Node.js的包管理器,也是整个Node.js社区最流行、支持的第三方模块最多的包管理器。 npm的初衷:JavaScript开发人员更容易分享和重用代码。 npm的使用场景: 允许用户获取第三方包并使用。 允许用户将自己编写的包或命令行程序进行发布分享。 npm版本查询...

vue router路由嵌套

export default new Router({ routes: [{ path: '/', name: 'HelloWorld', component: HelloWorld, children: [{ path: '/Furong/:id', name: 'Furong',...

我也来谈一谈c++模板(一)

c++中程序员使用模板能够写出与类型无关的代码,提高源代码重用,使用合适,大大提高了开发效率。此前,可以使用宏实现模板的功能,但是模板更加安全、清晰。在编写模板相关的代码是我们用到两个关键词:template和class(或者typename),class和typename基本没有区别。 1、函数模板 函数模板本质上就是实现针对不同类型的同一种算法的代码...