1.2 – Комментарии в C++
Добавлено 31 марта 2021 в 00:17
Комментарий – это заметка, удобная для чтения программисту, которая вставляется непосредственно в исходный код программы. Комментарии игнорируются компилятором и предназначены только для использования программистом.
В C++ есть два разных стиля комментариев, которые служат одной цели: помочь программистам каким-то образом документировать код.
Однострочные комментарии
Однострочный комментарий C++ начинается с символов //
, которые указывают компилятору игнорировать всё, от символов //
до конца строки. Например:
std::cout << "Hello world!"; // Всё отсюда до конца строки игнорируется
Обычно однострочный комментарий используется для быстрого комментария к одной строке кода.
std::cout << "Hello world!\n"; // std::cout живет в библиотеке iostream std::cout << "It is very nice to meet you!\n"; // эти комментарии затрудняют чтение кода std::cout << "Yeah!\n"; // особенно когда строки разной длины
Наличие комментариев справа от строки может затруднить чтение и кода, и комментария, особенно если строка длинная. Если строки достаточно короткие, комментарии можно просто выровнять (обычно по позиции табуляции), например:
std::cout << "Hello world!\n"; // std::cout живет в библиотеке iostream std::cout << "It is very nice to meet you!\n"; // это намного легче читать std::cout << "Yeah!\n"; // вам так не кажется?
Однако, если строки длинные, размещение комментариев справа может сделать ваши строки очень длинными. В этом случае однострочные комментарии часто помещаются над строкой, которую они комментируют:
// std::cout живет в библиотеке iostream std::cout << "Hello world!\n"; // это намного легче читать std::cout << "It is very nice to meet you!\n"; // вам так не кажется? std::cout << "Yeah!\n";
Многострочные комментарии
Пары символов /*
и */
отмечают многострочный комментарий в стиле C. Всё, что находится между этими символами, игнорируется.
/* Это многострочный комментарий. Эта строка будет проигнорирована. И эта тоже. */
Поскольку всё, что находится между этими символами, игнорируется, вы иногда можете увидеть, как программисты «украшают» свои многострочные комментарии:
/* Это многострочный комментарий. * выровненные звездочки слева * могут облегчить чтение */
Комментарии в многострочном стиле не могут быть вложенными. Следовательно, результаты следующего кода могут быть неожиданными:
/* Это многострочный /* комментарий */ не внутри комментария */ // Приведенный выше комментарий заканчивается первым */, а не вторым */
Когда компилятор попытается скомпилировать этот код, он проигнорирует все, от первого /*
до первого */
. Поскольку фрагмент «это не внутри комментария */» не считается частью комментария, компилятор попытается скомпилировать его. Это неизбежно приведет к ошибке компиляции.
Это то место, где использование подсветки синтаксиса может быть действительно полезным, поскольку различная окраска текста комментария должна прояснить, что считается частью комментария, а что нет.
Предупреждение
Не используйте многострочные комментарии внутри других многострочных комментариев. Обертывание однострочных комментариев внутри многострочных комментариев допускается.
Правильное использование комментариев
Обычно комментарии используются для трех вещей. Во-первых, для заданной библиотеки, программы или функции комментарии лучше всего использовать для описания того, что делает библиотека, программа или функция. Обычно они размещаются в верхней части файла или библиотеки или непосредственно перед функцией. Например:
// Эта программа вычисляет итоговую оценку учащегося на основе результатов теста и домашних заданий.
// Эта функция использует метод Ньютона для аппроксимации корня данного уравнения.
// Следующие строки генерируют случайный элемент в зависимости от редкости, уровня и весового коэффициента.
Все эти комментарии дают читателю хорошее представление о том, что пытается выполнить библиотека, программа или функция, не обращая внимания на реальный код. Пользователь (возможно, кто-то другой или вы, если вы пытаетесь повторно использовать код, который вы написали ранее) может сразу определить, соответствует ли код тому, что он или она пытается выполнить. Это особенно важно при работе в команде, где не все знакомы со всем кодом.
Во-вторых,
/* Чтобы подсчитать итоговую оценку, мы суммируем все взвешенные промежуточные баллы и баллы за домашнее задание, а затем делим на количество баллов, чтобы определить процент, который используется для расчета буквенной оценки. */
// Чтобы сгенерировать случайный элемент, мы сделаем следующее: // 1) помещаем все элементы необходимой редкости в список; // 2) рассчитываем вероятность для каждого элемента на основе уровня и весового коэффициента; // 3) выбираем случайное число; // 4) выясняем, какому элементу соответствует это случайное число; // 5) возвращаем соответствующий элемент.
Эти комментарии дают пользователю представление о том, как код будет достигать своей цели, без необходимости понимать, что делает каждая отдельная его строка.
В-третьих, на уровне инструкций следует использовать комментарии, чтобы описать, почему код что-то делает. Комментарий плохой инструкции объясняет, что делает код. Если вы когда-нибудь напишете настолько сложный код, который требует комментария, чтобы объяснить, что делает инструкция, вам, вероятно, лучше переписать свою инструкцию, а не комментировать ее.
Вот несколько примеров плохих комментариев к строке и хороших комментариев к инструкции.
Плохой комментарий:
// Устанавливаем дальность прицела на 0 sight = 0;
Причина: мы уже видим, что прицел (sight) устанавливается на 0, посмотрев на инструкцию.
Хороший комментарий:
// Игрок только что выпил зелье слепоты и ничего не видит sight = 0;
Причина: теперь мы знаем, почему прицел игрока установлен на 0.
Плохой комментарий:
// Рассчитываем стоимость предметов cost = quantity * 2 * storePrice;
Хороший комментарий:
// Здесь нам нужно умножить количество на 2, потому что они покупаются парами cost = quantity * 2 * storePrice;
Причина: Теперь мы знаем, почему эта формула имеет смысл.
Программистам часто приходится выбирать между решением задачи одним или другим способом. Комментарии – отличный способ напомнить себе (или рассказать кому-то другому), почему вы приняли одно решение вместо другого.
Хорошие комментарии:
// Мы решили использовать связный список вместо массива, потому что // вставка в массивы слишком медленна.
// Мы собираемся использовать метод Ньютона, чтобы найти корень числа, потому что // нет детерминированного способа решения этих уравнений.
Наконец, комментарии должны быть написаны таким образом, чтобы иметь смысл для тех, кто не знает, что делает код. Часто программист говорит: «Совершенно очевидно, что он делает! Я ни за что не забуду об этом,». Угадайте, что? Это не очевидно, и вы удивитесь, как быстро вы забудете. 🙂 Вы (или кто-то другой) поблагодарите вас позже за то, что вы написали, что, как и почему делается в вашем коде на человеческом языке. Читать отдельные строки кода легко. Понимание того, для чего они предназначены, – нет.
Лучшая практика
Обильно комментируйте свой код и пишите свои комментарии, как если бы разговаривали с кем-то, кто не знает, что делает код. Не думайте, что вы вспомните, почему вы сделали конкретный выбор.
Закомментирование кода
Преобразование одной или нескольких строк кода в комментарий называется закомментированием кода. Это предоставляет удобный способ (временно) исключить фрагменты вашего кода из включения в скомпилированную программу.
Чтобы закомментировать одну строку кода и временно превратить эту строку кода в комментарий, просто используйте однострочный комментарий //
:
Незакомментированный код:
std::cout << 1;
Закомментированный код:
// std::cout << 1;
Чтобы закомментировать блок кода и временно превратить этот блок кода в комментарий, используйте //
в нескольких строках кода или многострочный комментарий /* */
.
Незакомментированный код:
std::cout << 1; std::cout << 2; std::cout << 3;
Закомментированный код:
// std::cout << 1; // std::cout << 2; // std::cout << 3;
или же
/* std::cout << 1; std::cout << 2; std::cout << 3; */
Есть несколько причин, по которым вы можете захотеть это сделать:
- Вы работаете над новым фрагментом кода, который еще не компилируется, и вам нужно запустить программу. Компилятор не позволит вам скомпилировать код, если есть ошибки компиляции. Комментирование кода, который не компилируется, позволит программе скомпилироватьсь, чтобы вы могли ее запустить. Когда вы будете готовы, вы сможете раскомментировать код и продолжить работу над ним.
- Вы написали новый код, который компилируется, но работает некорректно, и у вас нет времени исправить его. Комментирование неработающего кода гарантирует, что он не будет выполняться и не вызовет проблемы, пока вы не исправите его.
- Поиск источника ошибки. Если программа не дает желаемых результатов (или дает сбой), иногда может быть полезно отключить части вашего кода, чтобы посмотреть, можете ли вы определить причину, по которой она работает некорректно. Если вы закомментировали одну или несколько строк кода, и ваша программа начинает работать должным образом (или перестает давать сбой), скорее всего, то, что вы в последний раз закомментировали, было частью проблемы. Затем вы можете выяснить, почему эти строки кода вызывают проблему.
- Вы хотите заменить один фрагмент кода другим фрагментом кода. Вместо того чтобы просто удалять исходный код, вы можете закомментировать его и оставить для справки, пока не убедитесь, что новый код работает правильно. Убедившись, что ваш новый код работает, вы можете удалить старый закомментированный код. Если вам не удается заставить новый код работать, вы всегда можете удалить новый код и раскомментировать старый код, чтобы вернуться к тому, что было раньше.
Закомментирование кода – обычное дело при разработке, поэтому многие IDE поддерживают комментирование выделенного участка кода. Доступ к этой функции зависит от IDE.
Резюме
- На уровне библиотеки, программы или функции используйте комментарии, чтобы описать что делается.
- Внутри библиотеки, программы или функции используйте комментарии, чтобы описать, как это сделать.
- На уровне инструкции используйте комментарии, чтобы объяснить, почему.
Оригинал статьи:
- 1.2 — Comments
Теги
C++ / CppLearnCppДля начинающихОбучениеПрограммированиеНазад
Оглавление
Вперед
Комментарии в программировании | это… Что такое Комментарии в программировании?
Коммента́рии — пояснения к исходному тексту программы, находящиеся непосредственно внутри комментируемого кода. Синтаксис комментариев определяется языком программирования. С точки зрения компилятора или интерпретатора, комментарии — часть текста программы, не влияющая на её семантику. Комментарии не оказывают никакого влияния на результат компиляции программы или её интерпретацию. Помимо исходных текстов программ, комментарии также применяются в языках разметки и языках описания.
Содержание
|
Назначение комментариев
Большинство специалистов сходятся во мнении, что комментарии должны объяснять намерения программиста, а не код; то, что можно выразить на языке программирования, не должно выноситься в комментарии — в частности, надо использовать говорящие названия переменных, функций, классов, методов и пр., разбивать программу на лёгкие для понимания части, стремиться к тому, чтобы структура классов и структура баз данных были максимально понятными и прозрачными и т. д. Есть даже мнение (его придерживаются в экстремальном программировании и некоторых других гибких методологиях программирования), что если для понимания программы требуются комментарии — значит, она плохо написана.
Концепция грамотного программирования настаивает на включение в текст программы настолько подробных и продуманных комментариев, чтобы она стала исходным текстом не только для исполняемого кода, но и для сопроводительной документации.
Комментарии часто используются для временного отключения части кода. В языках C и C++, некоторые рекомендуют использовать с той же целью директивы препроцессора (#if 0
… #endif
).
Однострочные и многострочные комментарии
С точки зрения синтаксиса, существуют два вида комментариев. Многострочный комментарий может иметь любую длину, он отмечается специальными символами в начале и конце (например, /* */
). Некоторые языки позволяют вложение многострочных комментариев, другие — нет. Однострочный комментарий отмечается специальным символом в начале (например, //
) и продолжается до конца строки. Обычно допускается вложение однострочных комментариев в другие, как одно- так и многострочные комментарии. Способы записи можно чередовать, с точки зрения семантики они одинаковы.
Аннотации
Другой вид комментариев — аннотации — применяется в набросках доказательств правильности программ. Такие комментарии описывают состояние компьютера, когда программа в процессе выполнения достигнет точки, где расположен комментарий. Программа, снабжённая комментариями-аннотациями, называется аннотированной программой.
Автоматическая генерация документации
Специальным образом оформленные комментарии (т. н. документирующие комментарии) используются для автоматического создания документации, в первую очередь, к библиотекам функций или классов. Для этого используются генераторы документации, например, такие как [1] для языка doxygen [2] для C и C++ и др. В некоторых средах программирования (например, Python) документирующие комментарии используются в качестве интерактивной подсказки по интерфейсу классов и функций.
Трансляция программ
Во время трансляции комментарии распознаются на стадии лексического анализа (и, соответственно, считаются лексемами). Распознавание на стадии препроцессирования накладно и даже чревато ошибками; включение комментариев в синтаксические диаграммы практически невозможно.
В различных языках и средах программирования
- Ассемблер
;
однострочный комментарийCOMMENT +
…
Многострочный комментарий.+
Строка с этим символом завершает комментарий, вместо плюса может быть другой символ.
- Форт
\
стандартный однострочный комментарий( Комментарий до закрывающей скобки. Может быть многострочным (зависит от реализации). Пробел после открывающей скобки обязателен.)
REM
однострочный комментарий
Многострочные комментарии Visual Studio 2019 C++
Задавать вопрос
спросил
Изменено 3 года, 6 месяцев назад
Просмотрено 3к раз
Когда линия выделена частично, это приводит к /**/
Комментарий в стиле C:
#include /**/ #include #include <узел.h>
Когда одна или несколько строк выделены частично, это приводит к //
комментарию в стиле C++:
//#include//# включаем #include <узел.h>
Все параметры комментариев VS2019 имеют следующее поведение: Переключить комментарий строки ( Ctrl+K, Ctrl+/
), Переключить комментарий блока ( Ctrl+Shift+/
), Выбор комментария ( Ctrl+K, Ctrl+C
).
По-разному ли ведут себя эти параметры на других языках?
Я знаю о недостатках комментариев в стиле C++, но хотел бы иметь возможность использовать их для многострочных комментариев там, где это необходимо:
/* #include#include */ #include <узел.h>
Можно ли настроить Visual Studio 2019 таким образом?
Есть и другие подобные вопросы, но они относятся к более старым версиям VS, и ответы кажутся устаревшими.
- c++
- визуальная студия
- комментарии
- визуальная студия-2019
Насколько я понимаю, вы должны выбрать всю строку (т.е. с самого первого символа строки), чтобы использовать комментарии С++ для нескольких строк.
Если среди выбранных строк есть комментарии, Ctrl+K,Ctrl+C создаст комментарии в стиле C++, даже если выделение начинается не с начала строк.
Например: Выберите содержимое, как показано:
А затем Ctrl+K, Ctrl+C
Если выделить всю строку, включая пробелы:
90 002 А затем Ctrl+K, Ctrl+C
, вы получите комментарий в стиле C++ для многострочных комментариев 2Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя адрес электронной почты и парольОпубликовать как гость
Электронная почтаОбязательно, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
Комментарии в C — Программирование микроконтроллеров на языке C
- Автор сообщения: FastBitLab
- Сообщение опубликовано: 30 апреля 2022 г.
- Категория сообщения: Блог
В этой статье давайте узнаем о комментировании.
Комментарии
- Обычно Комментарии используются для предоставления описания или документации по коду, который вы написали.
- С помощью комментариев вы можете упомянуть важное примечание, кратко объяснить поведение кода и другие полезные детали.
- Комментарии помогают разработчику понять логику/алгоритм кода, если он/она вернётся к коду спустя долгое время.
- Вы можете упомянуть комментарии в любом месте программы, и компилятор проигнорирует ваши комментарии.
- Комментарии не влияют на программы и не занимают место в памяти программ. Они не являются частью конечного исполняемого файла. Он существует только для целей документации.
В C существует два типа комментариев:
- Однострочные комментарии
Однострочные комментарии могут быть предоставлены с помощью //……………
Используется две косые черты.
- Многострочные комментарии. между комбинация косой черты (/) и звездочки (*).
Это пример многострочного комментария.
Рис. 1. Пример многострочных комментариевЗдесь комментарий должен начинаться с косой черты (/), за которой следует звездочка (*). И после этого, какой бы комментарий вы ни захотели написать, вы можете написать его здесь. Таким образом, задействованы несколько строк комментариев, а затем вы заканчиваете комментарий, используя звездочку (*), за которой следует косая черта (/). Это то, что мы называем многострочными комментариями.
Первый комментарий должен начинаться с двух косых черт ( // ) в однострочном комментарии.
Пример однострочного и многострочного комментирования показан на рисунке 3.
Рисунок 3. Написание комментариев по программеВ программе, чтобы начать многострочное комментирование, вы можете начать с переадресации косая черта, за которой следует звездочка (/*), и после этого вы можете написать все, что хотите; Я пишу «это моя первая программа». После этого вы заканчиваете комментирование, используя звездочку, за которой следует косая черта (*/).
Здесь, если вы хотите добавить еще одну строку, вы можете нажать Enter и добавить еще один комментарий. Итак, «это строка комментария 1», а после этого вы можете добавить еще одну строку, «это строка комментария 2», вот так. Итак, вы можете видеть, что все строки находятся между этими маркерами (/*…..*/). Итак, это то, что мы называем многострочным комментарием.
Вы должны использовать двойную косую черту (//) для однострочного комментария для каждой строки.
В следующей статье мы рассмотрим типы данных и переменные языка C.
Курсы FastBit Embedded Brain Academy
Нажмите здесь: https://fastbitlab.com/course1
Теги: Лекции по микроконтроллеру Embedded Brain Academy
FastBitLab
Академия FastBit Embedded Brain Academy использует возможности Интернета, чтобы предлагать онлайн-курсы, связанные с программированием встроенных систем, операционной системой реального времени, встроенными системами Linux и т.