Другие языки программирования и технологии

Как грамотно комментировать код C/C++. Есть ли какие нибудь стили или стандарты?

Есть общепринятые стандарты. Вот описание с примерами для Delphi (на C#, C++ все тоже самое, только сами тэги комментариев другие)
Комментарии: пояснения и исключение кода
Полагаем, что различные способы комментирования
{ ...}
(* ...*)
//
будут использоваться для различных целей. Если не оговорено иного (см. , например, Общие разделы модуля) , для пояснений используем символы //. Например:
// Некоторый комментарий
if (A > 1) then DoSomeAction;
Для исключения кода, например, при отладке, используем символы {}, при этом
открывающую и закрывающую скобку располагаем так, чтобы не нарушать имеющиеся
границы форматирования. Например:
// Некоторый комментарий
if (A > 1) then DoSomeAction;
{
if (A > 1) then
begin
DoSomeAction1;
DoSomeAction2(A);
end;
}
if (B < 0) then Exit;
или
if (A > 1) then DoSomeAction;
{if (A > 1) then
begin
DoSomeAction1;
DoSomeAction2(A);
end;}
if (B < 0) then Exit;
но не
if (A > 1) then DoSomeAction;
{ if (A > 1) then
begin
DoSomeAction1;
DoSomeAction2(A);
end;
}
if (B < 0) then Exit;
Для исключения кода могут использоваться и символы (* *), особенно в случае, когда исключаемый участок кода уже содержит вложенные комментарии с использованием фигурных скобок.
Примечание:
Как правило, в модуле, который считается стабильным (отлаженным) , не должно оставаться отладочных комментариев. Исключения составляют случаи, когда закомментаренный участок оставляется для того, чтобы прежний (закомментаренный) и новый (пришедший на замену закомментаренному) участки кода были некоторое время доступны для визуального сравнения без помощи каких-либо средств контроля версий. В таких случая следует указывать дату произведенных изменений (закомментаривания) .
Отступы в комментариях
В поясняющих комментариях между открывающим символом комментария и текстом комментария следует оставлять один пробел:
// Некоторый комментарий
Отсутствие пробела
//Некоторый комментарий
приводит к ухудшению восприятия (смотрится так же невыразительно, как начало предложения без пробела от завершающей точки предыдущего предложения) .
Датирование изменений
При осуществлении исправлений в исходных текстах (т. е. именно при исправлении существующих, работающих модулей, а не при разработке новых) и особенно - при осуществлении исправлений в ветке средства контроля версий, которая будет затем merge с другой веткой, обязательно комментируем свои исправления в виде:
// [login] [ dd.mm.yyyy ] - [Содержание]
например:
// VPupkin 17.10.2005 - теперь круглое
// носим, квадратное катаем
Если изменение осуществляется в рамках некоторого change request, можно указать его номер, например:
// VPupkin 17.10.2005 CR-555 - теперь круглое
// носим, квадратное катаем
Петр Безгодько
Петр Безгодько
3 728
Лучший ответ
Самое трудное в программировании - это писать коменты) ) когда код большой. держишь все в голове и со временем уже забываешь что к чему. Благо не ассемблер! Лично я их пишу мало. Только в специфических местах. Так как стараюсь процедурам и функциям дать понятные имена.
А так надо польностью расписывать: назначение, входные и выходные данные. Но это актуально для функций и/или процедур вынесенных в отдельный модуль, который может быть часто использован. А в остальном я не вижу особого смысла.
Вообще-то есть, но самое главное, чем подробней, тем лучше!
Конечно есть. В любом хорошем учебнике про это есть. Почитай Р. Лафоре
Объектно-ориентированное программирование в С++.
Там есть образцы для применения, и даются описания стилей.
почитай "Идеальный код" МакКонела
Рино Шикарный
Рино Шикарный
22 045