Комментарии в Visual Studio для Mac
Visual Studio для Mac планируется выйти на пенсию 31 августа 2024 года в соответствии с современной политикой жизненного цикла Майкрософт. Хотя вы можете продолжать работать с Visual Studio для Mac, есть несколько других вариантов для разработчиков на Mac, таких как предварительная версия нового расширения комплекта разработки C# для VS Code.
При отладке кода или экспериментировании с ним может потребоваться комментировать блоки кода как временно, так и в долгосрочной перспективе.
Чтобы оставить комментарий к целому блоку кода, сделайте следующее:
- Выделите код и выберите пункт Закомментировать или раскомментировать строку в контекстном меню
- Используйте настраиваемое сочетание клавиш cmd + / для выделенного кода.
Эти методы позволяют закомментировать или раскомментировать разделы кода.
В файлах C# можно добавить дополнительные уровни комментариев для строк, что позволяет закомментировать или раскомментировать области кода, сохранив фактические комментарии:
Комментарии также удобно использовать при документировании кода для разработчиков, которые могут столкнуться с ним в будущем. Это выполняется в виде многострочных комментариев, которые в каждом языке добавляются следующим образом:
C#
/* This is a multi-line comment in C# */
F#
(* This is a multi-line comment in F# *)
См. также
Как закомментировать несколько строк в python
Если следовать стилю кодирования, то PEP-8 рекомендует использовать # и для блочных комментариев . Это значит, что комментировать нужно каждую строку. Например:
# Первая строка комментария # Вторая строка комментария # и т.д.
Но существует хак, а именно заключать строковые литералы в тройные апострофы:
''' Первая строка комментария Вторая строка комментария и т.д. '''
1.2 – Комментарии в C++
Комментарий – это заметка, удобная для чтения программисту, которая вставляется непосредственно в исходный код программы. Комментарии игнорируются компилятором и предназначены только для использования программистом.
В C++ есть два разных стиля комментариев, которые служат одной цели: помочь программистам каким-то образом документировать код.
Однострочные комментарии
Однострочный комментарий C++ начинается с символов // , которые указывают компилятору игнорировать всё, от символов // до конца строки. Например:
std::cout
Обычно однострочный комментарий используется для быстрого комментария к одной строке кода.
std::cout
Наличие комментариев справа от строки может затруднить чтение и кода, и комментария, особенно если строка длинная. Если строки достаточно короткие, комментарии можно просто выровнять (обычно по позиции табуляции), например:
std::cout
Однако, если строки длинные, размещение комментариев справа может сделать ваши строки очень длинными. В этом случае однострочные комментарии часто помещаются над строкой, которую они комментируют:
// std::cout живет в библиотеке iostream std::cout
Примечание автора
Приведенные выше инструкции представляют собой одну из наших первых встреч с фрагментами кода. Поскольку фрагменты не являются полноценными программами, они не могут быть скомпилированы сами по себе. Они нужны, чтобы кратко продемонстрировать конкретные концепции.
Если вы хотите скомпилировать фрагмент кода, вам нужно превратить его в полную программу, чтобы она могла скомпилироваться. Обычно эта программа будет выглядеть примерно так:
#include int main() < // Замените эту строку фрагментом кода, который вы хотите скомпилировать return 0; >
Многострочные комментарии
Пары символов /* и */ отмечают многострочный комментарий в стиле C. Всё, что находится между этими символами, игнорируется.
/* Это многострочный комментарий. Эта строка будет проигнорирована. И эта тоже. */
Поскольку всё, что находится между этими символами, игнорируется, вы иногда можете увидеть, как программисты «украшают» свои многострочные комментарии:
/* Это многострочный комментарий. * выровненные звездочки слева * могут облегчить чтение */
Комментарии в многострочном стиле не могут быть вложенными. Следовательно, результаты следующего кода могут быть неожиданными:
/* Это многострочный /* комментарий */ не внутри комментария */ // Приведенный выше комментарий заканчивается первым */, а не вторым */
Когда компилятор попытается скомпилировать этот код, он проигнорирует все, от первого /* до первого */ . Поскольку фрагмент « это не внутри комментария */ » не считается частью комментария, компилятор попытается скомпилировать его. Это неизбежно приведет к ошибке компиляции.
Это то место, где использование подсветки синтаксиса может быть действительно полезным, поскольку различная окраска текста комментария должна прояснить, что считается частью комментария, а что нет.
Предупреждение
Не используйте многострочные комментарии внутри других многострочных комментариев. Обертывание однострочных комментариев внутри многострочных комментариев допускается.
Правильное использование комментариев
Обычно комментарии используются для трех вещей. Во-первых, для заданной библиотеки, программы или функции комментарии лучше всего использовать для описания того, что делает библиотека, программа или функция. Обычно они размещаются в верхней части файла или библиотеки или непосредственно перед функцией. Например:
// Эта программа вычисляет итоговую оценку учащегося на основе результатов теста и домашних заданий.
// Эта функция использует метод Ньютона для аппроксимации корня данного уравнения.
// Следующие строки генерируют случайный элемент в зависимости от редкости, уровня и весового коэффициента.
Все эти комментарии дают читателю хорошее представление о том, что пытается выполнить библиотека, программа или функция, не обращая внимания на реальный код. Пользователь (возможно, кто-то другой или вы, если вы пытаетесь повторно использовать код, который вы написали ранее) может сразу определить, соответствует ли код тому, что он или она пытается выполнить. Это особенно важно при работе в команде, где не все знакомы со всем кодом.
Во-вторых, внутри библиотеки, программы или функции, описанной выше, можно использовать комментарии, чтобы описать, как код будет достигать своей цели.
/* Чтобы подсчитать итоговую оценку, мы суммируем все взвешенные промежуточные баллы и баллы за домашнее задание, а затем делим на количество баллов, чтобы определить процент, который используется для расчета буквенной оценки. */
// Чтобы сгенерировать случайный элемент, мы сделаем следующее: // 1) помещаем все элементы необходимой редкости в список; // 2) рассчитываем вероятность для каждого элемента на основе уровня и весового коэффициента; // 3) выбираем случайное число; // 4) выясняем, какому элементу соответствует это случайное число; // 5) возвращаем соответствующий элемент.
Эти комментарии дают пользователю представление о том, как код будет достигать своей цели, без необходимости понимать, что делает каждая отдельная его строка.
В-третьих, на уровне инструкций следует использовать комментарии, чтобы описать, почему код что-то делает. Комментарий плохой инструкции объясняет, что делает код. Если вы когда-нибудь напишете настолько сложный код, который требует комментария, чтобы объяснить, что делает инструкция, вам, вероятно, лучше переписать свою инструкцию, а не комментировать ее.
Вот несколько примеров плохих комментариев к строке и хороших комментариев к инструкции.
// Устанавливаем дальность прицела на 0 sight = 0;
Причина: мы уже видим, что прицел (sight) устанавливается на 0, посмотрев на инструкцию.
// Игрок только что выпил зелье слепоты и ничего не видит sight = 0;
Причина: теперь мы знаем, почему прицел игрока установлен на 0.
// Рассчитываем стоимость предметов cost = quantity * 2 * storePrice;
Причина: мы видим, что это расчет стоимости, но почему количество умножается на 2?
// Здесь нам нужно умножить количество на 2, потому что они покупаются парами cost = quantity * 2 * storePrice;
Причина: Теперь мы знаем, почему эта формула имеет смысл.
Программистам часто приходится выбирать между решением задачи одним или другим способом. Комментарии – отличный способ напомнить себе (или рассказать кому-то другому), почему вы приняли одно решение вместо другого.
// Мы решили использовать связный список вместо массива, потому что // вставка в массивы слишком медленна.
// Мы собираемся использовать метод Ньютона, чтобы найти корень числа, потому что // нет детерминированного способа решения этих уравнений.
Наконец, комментарии должны быть написаны таким образом, чтобы иметь смысл для тех, кто не знает, что делает код. Часто программист говорит: «Совершенно очевидно, что он делает! Я ни за что не забуду об этом,». Угадайте, что? Это не очевидно, и вы удивитесь, как быстро вы забудете. 🙂 Вы (или кто-то другой) поблагодарите вас позже за то, что вы написали, что, как и почему делается в вашем коде на человеческом языке. Читать отдельные строки кода легко. Понимание того, для чего они предназначены, – нет.
Лучшая практика
Обильно комментируйте свой код и пишите свои комментарии, как если бы разговаривали с кем-то, кто не знает, что делает код. Не думайте, что вы вспомните, почему вы сделали конкретный выбор.
Примечание автора
На протяжении всей остальной части этой серии руководств мы будем использовать комментарии внутри фрагментов кода, чтобы привлечь ваше внимание к конкретным вещам или помочь проиллюстрировать, как всё работает (обеспечивая при этом компиляцию программ). Проницательные читатели заметят, что по вышеуказанным стандартам большинство этих комментариев ужасны. 🙂 Читая остальные руководства, имейте в виду, что комментарии служат намеренно образовательной цели, а не пытаются продемонстрировать, как выглядят хорошие комментарии.
Закомментирование кода
Преобразование одной или нескольких строк кода в комментарий называется закомментированием кода. Это предоставляет удобный способ (временно) исключить фрагменты вашего кода из включения в скомпилированную программу.
Чтобы закомментировать одну строку кода и временно превратить эту строку кода в комментарий, просто используйте однострочный комментарий // :
std::cout
// std::cout
Чтобы закомментировать блок кода и временно превратить этот блок кода в комментарий, используйте // в нескольких строках кода или многострочный комментарий /* */ .
std::cout
// std::cout
/* std::cout
Есть несколько причин, по которым вы можете захотеть это сделать:
- Вы работаете над новым фрагментом кода, который еще не компилируется, и вам нужно запустить программу. Компилятор не позволит вам скомпилировать код, если есть ошибки компиляции. Комментирование кода, который не компилируется, позволит программе скомпилироватьсь, чтобы вы могли ее запустить. Когда вы будете готовы, вы сможете раскомментировать код и продолжить работу над ним.
- Вы написали новый код, который компилируется, но работает некорректно, и у вас нет времени исправить его. Комментирование неработающего кода гарантирует, что он не будет выполняться и не вызовет проблемы, пока вы не исправите его.
- Поиск источника ошибки. Если программа не дает желаемых результатов (или дает сбой), иногда может быть полезно отключить части вашего кода, чтобы посмотреть, можете ли вы определить причину, по которой она работает некорректно. Если вы закомментировали одну или несколько строк кода, и ваша программа начинает работать должным образом (или перестает давать сбой), скорее всего, то, что вы в последний раз закомментировали, было частью проблемы. Затем вы можете выяснить, почему эти строки кода вызывают проблему.
- Вы хотите заменить один фрагмент кода другим фрагментом кода. Вместо того чтобы просто удалять исходный код, вы можете закомментировать его и оставить для справки, пока не убедитесь, что новый код работает правильно. Убедившись, что ваш новый код работает, вы можете удалить старый закомментированный код. Если вам не удается заставить новый код работать, вы всегда можете удалить новый код и раскомментировать старый код, чтобы вернуться к тому, что было раньше.
Закомментирование кода – обычное дело при разработке, поэтому многие IDE поддерживают комментирование выделенного участка кода. Доступ к этой функции зависит от IDE.
Для пользователей Visual Studio
Вы можете закомментировать или раскомментировать выделенный фрагмент с помощью меню Правка (Edit) → Дополнительно (Advanced) → Закомментировать выделенный фрагмент (Comment Selection) или Раскомментировать выделенный фрагмент (Uncomment Selection).
Для пользователей Code::Blocks
Вы можете закомментировать или раскомментировать выделенный фрагмент с помощью меню Edit (Правка) → Comment (Комментарий) или Uncomment (Раскомментировать) или Toggle comment (Переключить комментарий) или любой другой инструмент для комментирования.
Совет
Если для своих обычных комментариев вы всегда используете однострочные комментарии, вы всегда можете использовать многострочные комментарии, чтобы без конфликтов комментировать свой код. Если вы используете многострочные комментарии для документирования кода, то закомментирование кода может стать более сложной задачей.
Если вам нужно закомментировать блок кода, содержащий многострочные комментарии, вы также можете рассмотреть возможность использования директивы препроцессора #if 0 , которую мы обсуждаем в уроке «2.9 – Знакомство с препроцессором».
Резюме
- На уровне библиотеки, программы или функции используйте комментарии, чтобы описать что делается.
- Внутри библиотеки, программы или функции используйте комментарии, чтобы описать, как это сделать.
- На уровне инструкции используйте комментарии, чтобы объяснить, почему.
Как закомментировать блок
Существует ли в среде VisualC++ такая команда как "закомментировать блок",
то есть проставить символы комментариев перед каждой строкой выделенного фрагмента.
8 ответов
26 августа 2003 года
3.7K / / 01.10.2002
/*
а теперь не модно ??
раньше в C не было "//"
*/
26 августа 2003 года
7 / / 23.07.2003
Originally posted by max_cr
Существует ли в среде VisualC++ такая команда как "закомментировать блок",
то есть проставить символы комментариев перед каждой строкой выделенного фрагментах
Для этого существуют макросы. В Visual C++ есть макрос для комментирования блока:
Идёшь Tools->Macro. В поле Macro file выбираешь Sample, имя макроса: CommentOut, затем жмёшь Run.
Можешь повесить этот макрос на клаву:
Жмёшь Options, появляются ещё кнопочки, жмёшь Keystrokes, дальше всё легко.
28 августа 2003 года
94 / / 22.04.2003
Originally posted by max_cr
Существует ли в среде VisualC++ такая команда как "закомментировать блок",
то есть проставить символы комментариев перед каждой строкой выделенного фрагмента.
А вообщче есть такая полезная штука как Visual Assist. В шестом ассисте есть такая штука, как закомментировать блок. Я вообще его вешал на Ctrl+/ и все хорошо. Решай сам.
28 августа 2003 года
4.8K / / 20.01.2000
Originally posted by max_cr
Существует ли в среде VisualC++ такая команда как "закомментировать блок",
то есть проставить символы комментариев перед каждой строкой выделенного фрагмента.
Если в основе вопроса лежит проблема с исключением части кода из процесса компиляции, и использование /* */ не подходит, т.к. в комментируемом блоке встречается */, например такую запись т.о. не закоментировать:
int func(int arg1, int /*arg2*/)
.
>
то могу предложить такой вариант:
#if 0
int func(int arg1, int /*arg2*/)
.
>
#endif
01 сентября 2003 года
6 / / 15.08.2003
А вообщче есть такая полезная штука как Visual Assist. В шестом ассисте есть такая штука, как закомментировать блок. Я вообще его вешал на Ctrl+/ и все хорошо. Решай сам.
Jeff, а где найти этот Visual Assist?
Для этого существуют макросы. В Visual C++ есть макрос для комментирования блока:
Идёшь Tools->Macro. В поле Macro file выбираешь Sample, имя макроса: CommentOut, затем жмёшь Run.
Можешь повесить этот макрос на клаву:
Жмёшь Options, появляются ещё кнопочки, жмёшь Keystrokes, дальше всё легко.
dimas3679, не подскажешь, где можно найти описание языка макросов для Visual C++.
Если в основе вопроса лежит проблема с исключением части кода из процесса компиляции, и использование /* */ не подходит, т.к. в комментируемом блоке встречается */, например такую запись т.о. не закоментировать:
то могу предложить такой вариант:
Green, я в С++ новичок и честно говоря не понял что сделает твой фрагмент кода?
01 сентября 2003 года
4.8K / / 20.01.2000
Originally posted by max_cr
Green, я в С++ новичок и честно говоря не понял что сделает твой фрагмент кода?
Директива предпроцессора #IF . #ENDIF используется для условного включения кода внутри этой директивы в процесс компиляции. Т.е. другими словами: если условие в #IF выполняется (true), то код между #IF и #ENDIF будет скомпилирован, а если условие не выполняется (false), то код не будет скомпилирован, т.е. как-бы закомментирован.
Т.о. если написать #IF 0, что равносильно #IF false, то кусок кода выпадет из компиляции.
#if 0
// Этот код компилятор обойдет
int func(int arg1, int /*arg2*/)
.
>
#endif
Для того, что бы вновь вставить кусок кода в процесс копиляции, достаточно заменить #IF 0 на #IF 1, что равносильно #IF true
