Комментарии в C
Комментарий — это последовательность символов, которая начинается с косой черты и звездочки (/*). Компилятор воспринимает комментарий как один пробельный символ, в остальных случаях он игнорируется. Комментарии могут включать любое сочетание символов из представимого набора символов, который включает символы новой строки, но не включает разделитель конца комментария (*/). Комментарии могут занимать несколько строк, но не могут быть вложенными.
Они могут располагаться в любом месте, где допускается использование пробельных символов. Так как компилятор обрабатывает комментарий как один символ пробела, нельзя включать комментарии в маркеры. Символы, которые находятся в комментарии, компилятор игнорирует.
Комментарии используются для документирования кода. В следующем примере компилятор принимает комментарий:
/* Comments can contain keywords such as
for and while without generating errors. */
Комментарии в коде могут находиться в той же строке, что и оператор:
printf( "Hello\n" ); /* Comments can go here */
Перед функциями или программными модулями можно вставлять блоки комментариев с описаниями.
/* MATHERR.C illustrates writing an error routine
* for math functions.
*/
Так как примечания не могут содержать вложенные комментарии, в этом примере возникает ошибка:
/* Comment out this routine for testing
/* Open file */
fh = _open( "myfile.c", _O_RDONLY );
.
.
.
*/
Причина ошибки в том, что компилятор распознает первое сочетание символов, */
, расположенное после слов Open file
, как конец комментария. Он пытается обработать оставшийся текст, а обнаружив символы */
за пределами комментария, выдает сообщение об ошибке.
Хотя с помощью комментариев можно скрывать часть кода для тестирования, для этого есть полезная альтернатива: директивы препроцессора #if
и #endif
и условная компиляция. Дополнительные сведения см. в статье Preprocessor Directives (Директивы препроцессора) в справочника по препроцессору.
Блок, относящийся только к системам Майкрософт
Компилятор Microsoft также поддерживает однострочные комментарии, перед которыми ставятся две косые черты (//
). Эти комментарии не могут расшириться на вторую строку.
// This is a valid comment
Комментарии, начинающиеся с двух косых черт (//
) завершаются следующим символом новой строки, который не предшествует escape-символу. В следующем примере символу новой строки предшествует обратная косая черта (\
), создается escape-последовательность. Эта escape-последовательность заставляет компилятор обрабатывать следующую строку как часть предыдущей строки. Дополнительные сведения см. в статье Escape Sequences (Escape-последовательности).
// my comment \
i++;
Поэтому оператор i++;
скрыт комментарием.
В Microsoft C расширения Microsoft по умолчанию включены. Отключить их можно при помощи параметра /Za.
Завершение блока, относящегося только к системам Майкрософт