Spec-Zone.ru › C++

Комментарии

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

Синтаксис

/* multi-line-content */ (1)
// single-line-content (2)
1) Часто называются комментариями «в стиле C» или «многострочными».
2) Часто называются комментариями «в стиле C++» или «однострочными».
multi-line-content - Последовательность символов, не содержащая последовательность символов */
single-line-content - Последовательность символов, не содержащая символов новой строки

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

В стиле C

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

Комментарии в стиле C не могут быть вложенными:

/************************
/* Comment ends here -> */
 ************************/ // <- Not part of comment

В стиле C++

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

Примечания

Хотя это и не входит в стандарт C++, /** и */ часто используются для обозначения блоков документации. Это допустимо, поскольку вторая звёздочка просто считается частью комментария.

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

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

#if 0
    std::cout << "this will not be executed or even compiled\n";
#endif

и

if (false)
{
    std::cout << "this will not be executed\n";
}

Пример

#include <iostream>

/* C-style comments can contain
multiple lines */
/* or just one */

/**************
 *  you can insert any *, but
 *  you can't make comments nested
 */

// C++-style comments can comment one line

// or, they can
// be strung together

int main()
{
    // comments are removed before preprocessing,
    // so ABC is "1", not "1//2134", and "1 hello world"
    // will be printed
#define ABC 1//2134
    std::cout << ABC << " hello world\n";
    
    // The below code won't be run
    // return 1;
    
    // The below code will be run
    return 0;
}

Вывод:

1 hello world

Отчёты об ошибках

Следующие отчёты об ошибках, изменяющие поведение, были применены задним числом к ранее опубликованным стандартам C++.

DR Применяется к Опубликованное поведение Правильное поведение
P2843R3 C++98 если single-line-content содержит символ перевода страницы или вертикальной табуляции,
до конца разрешены только пробельные символы
удалить
ограничение

См. также

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/comment

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API