Пространства имён
Варианты
Действия

Комментарии

Материал из cppreference.com
< cpp
 
 
Язык С++
Общие темы
Препроцессор
Комментарии
Управление потоком
Операторы условного выполнения
if
Операторы итерации (циклы)
Операторы перехода
Функции
Объявление функции
Выражение лямбда-функции
Спецификатор inline
Спецификации динамических исключений (до C++17*)
Спецификатор noexcept (C++11)
Исключения
Пространства имён
Типы
Спецификаторы
decltype (C++11)
auto (C++11)
alignas (C++11)
Спецификаторы длительности хранения
Инициализация
Выражения
Альтернативные представления
Литералы
Логические - Целочисленные - С плавающей запятой
Символьные - Строковые - nullptr (C++11)
Определяемые пользователем (C++11)
Утилиты
Атрибуты (C++11)
Types
Объявление typedef
Объявление псевдонима типа (C++11)
Casts
Неявные преобразования - Явные преобразования
static_cast - dynamic_cast
const_cast - reinterpret_cast
Выделение памяти
Классы
Свойства функции класса
explicit (C++11)
static
Специальные функции-элементы
Шаблоны
Разное
 
 

Комментарии служат своего рода документацией, находящейся прямо в коде. При вставке в программу они игнорируются компилятором; комментарии используются в качестве пометок, облегчающих чтение и понимание кода. Хотя специфичная документация не является частью стандарта C++, существуют утилиты, которые разбирают комментарии в документацию различных форматов (пример - Doxygen).

Содержание

[править] Синтаксис

/* комментарий */ (1)
// комментарий (2)
1) Комментарии в С - стиле (также известны как многострочные комментарии).
2) Комментарии в С++ - стиле (также известны как однострочные комментарии).

Все комментарии удаляются из программы на фазе трансляции 3 заменой каждого комментария одним пробельным символом.

[править] C-стиль

Комментарии в С-стиле обычно используются для комментирования больших блоков текста, однако, они могут использоваться для комментирования отдельных строк. Чтобы вставить комментарий в С-стиле, просто окружите текст символами /* и */; это приведёт к тому, что содержимое комментария будет проигнорировано компилятором. Хотя это и не часть стандарта С++, символы /** и */ часто используются, чтобы обозначить блоки документации; это допустимо, потому что вторая звёздочка обрабатывается, как часть комментария. Комментарии в С-стиле не могут быть вложенными.

[править] C++-стиль

Комментарии в С++ стиле обычно используются для комментирования отдельных строк, однако, несколько комментариев в C++ стиле могут быть размещены совместно в форме многострочного комментария. Комментарии в C++ стиле говорят компилятору игнорировать всё содержимое между // и новой строкой.

[править] Примечания

Поскольку комментарии удаляются до стадии препроцессора, макрос не может использоваться для формирования комментария и незавершённый комментарий в C-стиле не переходит из #include (включённого) файла.

Помимо самого комментирования, существуют и другие способы для исключения исходного кода

#if 0
    std::cout << "Этот код не будет выполнен или даже скомпилирован\n";
#endif

и

if(false) {
    std::cout << "Этот код не будет выполнен\n"
}

[править] Пример

/* Комментарии в С-стиле могут содержать
несколько строк */
/* или всего одну */
 
/**************
 *  вы можете вставить любое количество символов *, но
 *  вы не можете создать вложенный комментарий
 */
 
// Комментарии в С++-стиле могут комментировать одну строку
 
// или они могут
// быть связанными друг с другом
 
#include <iostream>
 
int main() {
 
  // комментарии удаляются перед препроцессингом,
  // поэтому ABC равно "1", а не "1//2134", поэтому будет выведено
  // "1 привет мир"
 
  #define ABC 1//2134
  std::cout << ABC << " привет мир\n";
 
  // Код ниже не будет выполнен
  // return 1;
 
  // Код ниже будет выполнен
  return 0;
}

Вывод:

1 привет мир


[править] Смотрите также

Документация C по комментарии