我正在与一些学生讨论C编程风格,当我们谈论评论时,其中一人注意到他没有在C代码中使用C ++注释,因为它们是个坏主意。事实证明,这是基于个人经验的多行C ++评论,但这不是我第一次听到这种说法。那么,//
被认为是有害的,如果是,那么为什么呢?
答案 0 :(得分:24)
这取决于您使用的是哪个版本的C. C 99允许//作为注释,而C 89则不允许。
如果您希望尽可能向后兼容,请不要使用它们。但是,我认为这是一个极端的边缘情况。我愿意打赌几乎所有人都使用C 99。
编辑:任何最新版本的GCC都使用大部分C99。您可以在Wikipedia中找到更多信息。
答案 1 :(得分:11)
如果您在C中使用C ++注释,则某些C编译器可能不会接受您的代码。我认为这有害。
答案 2 :(得分:9)
根据MISRA-C 2004标准,不允许使用C ++注释。某些行业(特别是汽车行业)认可符合MISRA标准的代码,因此不允许使用C ++注释。我相信其他静态代码检查工具也是如此,例如LDRA等......
这并不会使它们本身就变坏,但它确实意味着如果你进入某些行业并希望以专业的方式工作,你将会积极地不鼓励使用C ++风格的评论。
答案 3 :(得分:5)
只有你不想使用它们的理由是你想写一个结构良好的C89编纂程序。
答案 4 :(得分:2)
人们使用//
代替/* */
的一个常见原因是,您可以“嵌套”前者而不是后者,因此您可以注释掉包含注释的代码。但你真的应该使用#if 0
来评论C中的代码。
答案 5 :(得分:1)
这些日子真的不应该引起任何关注,除非你维护代码专门用于编译古代编译器等。
答案 6 :(得分:0)
“//”,但在C89(这是迄今为止最受支持的方言)中,它不受支持。