Комментарии С++ считаются плохим стилем в C?

Я обсуждал стили программирования C с некоторыми учениками, и когда мы говорили о комментариях, один из них отметил, что он не использует комментарии С++ в коде C, потому что это плохая идея. Оказывается, он основан на личном опыте с многострочными комментариями на С++, но это не первый раз, когда я слышал эту заявку. Итак, // считается вредным, и если да, то почему?

Ответы

Ответ 1

Это зависит от того, какую версию C вы используете. C 99 позволяет//как комментарий, тогда как C 89 не имеет.

Если вы хотите быть как можно более обратной совместимостью, не используйте их. Но, я думаю, это крайний случай. Я готов поспорить, что почти все используют C 99.

Изменить: любая последняя версия GCC использует большую часть C99. Вы можете найти дополнительную информацию в Wikipedia.

Ответ 2

Если вы используете комментарии С++ в C, скорее всего, некоторые компиляторы C не будут принимать ваш код. Я считаю это вредным.

Ответ 3

Комментарии С++ не допускаются согласно стандарту MISRA-C 2004. Некоторые отрасли (автомобильные, в частности) присваивают MISRA-совместимый код и поэтому комментарии С++ не допускаются. Я считаю, что то же самое касается других инструментов проверки статического кода, таких как LDRA и т.д.

Это не делает их неотъемлемо плохими, но это означает, что если вы попадаете в определенные отрасли и хотите работать профессионально, вам будет не поощряться использование комментариев стиля С++.

Ответ 4

Комментарии на языке С++ добавлены в C с (еще не широко поддерживаемым) стандартом C99. Хотя сам стандарт не полностью поддерживается полностью, некоторые его части (например, комментарии к стилю С++) поддерживаются почти в каждом компиляторе. Учитывая, что они были добавлены, это означает, что в них есть необходимость, поэтому легко понять, что это не будет считаться плохим стилем - особенно если вы зададите себе рекомендации о том, где их использовать.

Только причина не использовать их - это если вы хотите написать хорошо сформированную компиляционную программу C89.

Ответ 5

Одной из распространенных причин, по которым люди используют // вместо /* */, является то, что вы можете "вложить" первое, а не последнее, и поэтому вы можете прокомментировать код, в котором есть комментарии. Но вы действительно должны использовать #if 0 для комментирования кода в C anyways.

Ответ 6

"//" поддерживается в C99, но в C89 (который является наиболее поддерживаемым диалектом) он не поддерживается.

Ответ 7

В наши дни это действительно не должно быть проблемой, если только вы не поддерживаете код для написания специально для компиляции с древними компиляторами и т.д.