为什么C++不支持"nested-comment"?
Why is a "nested-comment" not supported in C++?
在C 中,多行注释以/*
开头,并以*/
结尾。
,但会导致编译错误,如果:
/*
int a = 20;
/*
int b = 10;
*/
*/
有什么原因为什么C 不支持这种"嵌套点"样式?
C 标准在评论中指出:
5.7注释[lex.comment]
1字符/*
启动评论,该注释用字符*/
终止。这些注释不会嵌套。字符//
启动评论,该注释在下一个新线字符之前立即终止。如果在这样的评论中有形式喂养或垂直标签字符,则只有白色空间字符与终止评论的新线之间只出现白色空间字符。无需诊断。[注:评论 字符//
,/*
和*/
在//
注释中没有特殊含义,并且像其他字符一样对待。同样,注释字符//
和/*
在/*
注释中也没有特殊的含义。 - 末尾注]
添加了强调。
由于/*
在/*
注释中没有任何特殊含义,因此/*
之后的第一个*/
将被视为多行注释的结尾。然后,另一个*/
将被认为是悬挂的。
与许多缺少但易于描述潜在语言特征的缺失一样,这不在C 标准中,因为没有人能够说服相关委员会的重要性。
是的我想不出一个理论上的原因,为什么我不能想到任何现有的代码,如果引入此功能。
请注意一个默默无闻:/**/
可以代替某些地方的空间(例如int/**/n;
);/*/**/*/
的含义需要思考。
为什么不建议?
相关文章:
- Nested static_cast and const_cast
- DataStax C++ Cassandra Nested UDTs
- CMake nested libraries
- .comment 部分显示了 3 种不同的编译器
- 为什么C++不支持"nested-comment"?
- MSVC 的 C4138 警告 ( "'*/' found outside of comment" ) 是否应该被禁用?
- "Nested" 带括号的类模板参数推导:GCC vs. clang
- 模板尾部结构抬高"incomplete type in nested name specifier"
- ex.nested try-catch中的什么()更改
- 头文件类成员函数声明错误:"incomplete type name in nested name specifier"
- "Comment"出宏函数定义
- "complicated-nested" "for/if statement"真的遵循C标准吗?
- 需要帮助理解 GCC 给出"within a nested template argument list"错误的含义
- C++ nested classes
- Nested try-catch blocks?
- gdb stepping into nested member functions a.getClassB().getC
- "Nested" scoped_lock
- 为什么 gcc 4.8.1 给我">> should be > > within a nested templated list"错误?这不是在 C++11 中修复的吗?
- Nested boost::bind with io_service::post
- 这种关系"A is nested class in B"传递的吗?