Содержание

Комментарии в С++ / Ravesli

  Обновл. 11 Сен 2021  | 

Комментарий — это строка (или несколько строк) текста, которая вставляется в исходный код для объяснения того, что делает код. В языке C++ есть 2 типа комментариев: однострочные и многострочные.

Однострочные комментарии

Однострочные комментарии — это комментарии, которые пишутся после символов //. Они пишутся в отдельных строках и всё, что находится после этих символов комментирования, — игнорируется компилятором, например:

std::cout << «Hello, world!» << std::endl; // всё, что находится справа от двойного слеша, — игнорируется компилятором

std::cout << «Hello, world!» << std::endl; // всё, что находится справа от двойного слеша, — игнорируется компилятором

Как правило, однострочные комментарии используются для объяснения одной строчки кода:

std::cout << «Hello, world!» << std::endl; // cout и endl находятся в библиотеке iostream
std::cout << «It is so exciting!» << std::endl; // эти комментарии усложняют чтение кода
std::cout << «Yeah!» << std::endl; // особенно, когда строки разной длины

std::cout << «Hello, world!» << std::endl; // cout и endl находятся в библиотеке iostream

std::cout << «It is so exciting!» << std::endl; // эти комментарии усложняют чтение кода

std::cout << «Yeah!» << std::endl; // особенно, когда строки разной длины

Размещая комментарии справа от кода, мы затрудняем себе как чтение кода, так и чтение комментариев. Следовательно, однострочные комментарии лучше размещать над строками кода:

// cout и endl находятся в библиотеке iostream
std::cout << «Hello, world!» << std::endl;

// теперь уже легче читать
std::cout << «It is so exciting!» << std::endl;

// не так ли?
std::cout << «Yeah!» << std::endl;

// cout и endl находятся в библиотеке iostream

std::cout << «Hello, world!» << std::endl;

 

// теперь уже легче читать

std::cout << «It is so exciting!» << std::endl;

 

// не так ли?

std::cout << «Yeah!» << std::endl;

Многострочные комментарии

Многострочные комментарии — это комментарии, которые пишутся между символами /* */. Всё, что находится между звёздочками, — игнорируется компилятором:

/* Это многострочный комментарий.
Эта строка игнорируется
и эта тоже. */

/* Это многострочный комментарий.

Эта строка игнорируется

и эта тоже. */

Так как всё, что находится между звёздочками, — игнорируется, то иногда вы можете наблюдать следующее:

/* Это многострочный комментарий.
* Звёздочки слева
* упрощают чтение текста
*/

/* Это многострочный комментарий.

* Звёздочки слева

* упрощают чтение текста

*/

Многострочные комментарии не могут быть вложенными (т.е. одни комментарии внутри других):

/* Это многострочный /* комментарий */ а это уже не комментарий */
// Верхний комментарий заканчивается перед первым */, а не перед вторым */

/* Это многострочный /* комментарий */ а это уже не комментарий */

// Верхний комментарий заканчивается перед первым */, а не перед вторым */

Правило: Никогда не используйте вложенные комментарии.

Как правильно писать комментарии?

Во-первых, на уровне библиотек/программ/функций комментарии отвечают на вопрос «ЧТО?»: «Что делают эти библиотеки/программы/функции?». Например:

// Эта программа вычисляет оценку студента за семестр на основе его оценок за модули

// Эта функция использует метод Ньютона для вычисления корня функции

// Следующий код генерирует случайное число

// Эта программа вычисляет оценку студента за семестр на основе его оценок за модули

 

// Эта функция использует метод Ньютона для вычисления корня функции

// Следующий код генерирует случайное число

Все эти комментарии позволяют понять, что делает программа, без необходимости смотреть на исходный код. Это особенно важно специалистам, работающим в команде, где не каждый специалист будет знаком со всем имеющимся кодом.

Во-вторых, внутри библиотек/программ/функций комментарии отвечают на вопрос «КАК?»: «Как код выполняет задание?». Например:

/* Для расчета итоговой оценки ученика, мы складываем все его оценки за уроки и домашние задания,
а затем делим получившееся число на общее количество оценок.
Таким образом, мы получаем средний балл ученика. */

/* Для расчета итоговой оценки ученика, мы складываем все его оценки за уроки и домашние задания,

   а затем делим получившееся число на общее количество оценок.

   Таким образом, мы получаем средний балл ученика. */

Или:

// Чтобы получить рандомный (случайный) элемент, мы выполняем следующее:

// 1) Составляем список всех элементов.
// 2) Вычисляем среднее значение для каждого элемента, исходя из его веса, цвета и цены.
// 3) Выбираем любое число.
// 4) Определяем соответствие элемента случайно выбранному числу.
// 5) Возвращаем случайный элемент.

// Чтобы получить рандомный (случайный) элемент, мы выполняем следующее:

 

// 1) Составляем список всех элементов.

// 2) Вычисляем среднее значение для каждого элемента, исходя из его веса, цвета и цены.

// 3) Выбираем любое число.

// 4) Определяем соответствие элемента случайно выбранному числу.

// 5) Возвращаем случайный элемент.

Эти комментарии позволяют читателю понять, каким образом код выполняет поставленное ему задание.

В-третьих, на уровне стейтментов (однострочного кода) комментарии отвечают на вопрос «ПОЧЕМУ?»: «Почему код выполняет задание именно так, а не иначе?». Плохой комментарий на уровне стейтментов объясняет, что делает код. Если вы когда-нибудь писали код, который был настолько сложным, что нужен был комментарий, который бы объяснял, что он делает, то вам нужно было бы не писать комментарий, а переписывать этот код.

Примеры плохих и хороших однострочных комментариев:

// Присваиваем переменной sight значение 0

sight = 0;

// Игрок выпил зелье слепоты и ничего не видит

sight = 0;

// Рассчитываем стоимость элементов

cost = items / 2 * storePrice;

// Нам нужно разделить все элементы на 2, потому что они куплены по парам

cost = items / 2 * storePrice;

// Мы решили использовать список вместо массива,

// потому что массивы осуществляют медленную вставку.

// Мы используем метод Ньютона для вычисления корня функции,

// так как другого детерминистического способа решения этой задачи — нет.

//    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;

*/


SELECT count(suppliers.supplier_id)

/* количество поставщиков */

  FROM suppliers;


SELECT /* количество поставщиков */ count(suppliers.supplier_id)

  FROM suppliers;


SELECT count(suppliers.supplier_id) /* количество поставщиков */

  FROM suppliers;


SELECT count(suppliers.supplier_id) — количество поставщиков

  FROM suppliers;


SELECT count(suppliers.supplier_id)

/*

* количество поставщиков

* комментарий охватывает несколько строк в вашем SQL предложении.

*/

  FROM suppliers;


SELECT count(suppliers.supplier_id) /* количество поставщиков

комментарий, который охватывает несколько строк в вашем SQL предложении */

  FROM suppliers;



    Тип представления Обзор публикации
    Кампания индивидуальной массовой рассылки
    Интернет Образец пост-одного представителя
    Эл. Почта
    Печатная копия
    Пакетная массовая рассылка
    Интернет Опубликовать все комментарии
    Эл. Почта
    Печатная и рукописная копия
    Печатная копия — бланки писем / бланков открыток Образец пост-одного представителя