Что такое комментарии и зачем они нужны?
Возможно, вы заметили, что в листингах из примеров встречается не только код программ, но и мои пояснения, написанные после //
. Это комментарии.
Комментарии предназначены для того, чтобы пояснять какую-нибудь сложную часть вашей программы или какой-нибудь неочевидный трюк. Кроме того, иногда их используют, чтобы на время отключить какую-то часть кода. Это возможно потому, что всё, что записано в комментарии, компилятор игнорирует. Если быть точнее, процесс перевода программы с языка программирования на язык, понятный компьютеру, состоит из нескольких этапов. На одном из самых ранних этапов все комментарии из программы удаляются. Поэтому в комментариях можно писать всё что угодно, они никак не повлияют на итоговую программу.

Пример объёмного комментария в программе для численного решения дифференциальных уравнений. Язык программирования: Fortran
В программах на Си используются два вида комментариев. Первый вид тот, который я использую в коде. Такие комментарии однострочнымм комментариями. Однострочный комментарий действует с того момента как появился и до конца текущей строки.
Ещё есть многострочный комментарий. Начало такого комментария обозначается последовательностью /*
, а конец — */
. Всё, что будет записано между этими двумя последовательностями символов, будет проигнорировано компилятором. Обычно многострочные комментарии используют для документирования кода, указания авторства, описания возможных проблем в коде, исключения большого куска кода из программы и т.д.
Вы спросите, а зачем нужно исключать куски кода программы? Иногда это нужно для того, чтобы найти ошибку в программе или проверить как работают отдельные её части. Если просто удалить код (или вырезать в буфер обмена), то потом его придётся писать заново, а так, закомментировал на время, а потом обратно раскомментировал, когда потребовалось. Когда вы начнёте писать более-менее большие программы, тогда вы воочию убедитесь в пользе этого подхода.
Комментарии пишут программисты для программистов, которые будут читать/изменять этот код в будущем. Но даже если вы пишите код сугубо в личных целях, то я всё равно рекомендую вам оставлять комментарии. По прошествию нескольких месяцев бывает очень трудно вспомнить, что же ты тут такое делал и почему делал именно так, а не иначе.
Комментарии в коде могут быть как очень смешными:
Листинг 1.
// Магия. Не трогать.
//Этот код отстой, и мы оба это знаем.
//Так что двигайся дальше, а идиотом ты назовешь меня потом.
// Дорогой я_из_будущего! Пожалуйста, прости меня за этот код.
// Если я еще раз увижу такое, мне придется начать носить на работу оружие.
/* Если это условие когда-нибудь выполнится, пожалуйста,
сообщите мне по тел. ххх-ххх-ххх за вознаграждение. */
// пьян, исправить позже
// Когда я начинал это писать, только Бог и я понимали, что я делаю
// Сейчас остался только Бог
Так и не очень:
Листинг 2.
//Пожалуйста, работай
// Я не несу ответственности за этот код.
// Они меня заставили написать его против моей воли.
/*
Если вы читаете эти строки, значит вам поручили мой предыдущий проект.
Я очень, очень сочувствую вам. Удачи.
*/
Практика
Откройте программу "Hello, World". Попробуйте закомментировать строку
printf("Hello, World!\n");
Как вы думаете, как изменится работа программы? Проверьте своё предположение, скомпилировав и запустив получившуюся программу.Попробуйте добавить комментарий внутрь строки
"Hello, World!\n"
? Как думаете, сработает ли комментарий внутри строки? Проверьте своё предположение.Закомментируйте в программе ниже часть строк так, чтобы на экране появился текст:
Wake up, Neo...
The Matrix has you...
Follow the white rabbit...
Программа для изменения
#include <stdio.h>
int main (void) {
while (1 > 0) {
printf("Wake up, Neo...\n\n");
}
if (0 > 1) {
printf("The Matrix has you...\n\n");
}
printf("Follow the white rabbit...\n");
return 0;
}
Не бойтесь неизвестных инструкция языка программирования Си! С ними мы ещё разберёмся. =) Программистам часто приходится работать с кодом, в котором они не всё до конца понимают.
Исследовательские задачи для хакеров
- Самостоятельно изучите возможность писать вложенные комментарии.
Попробуйте внутри многострочного комментария использовать однострочный или многострочный комментарий. И наоборот, попробуйте внутри однострочного комментария вставить многострочный комментарий.
Дополнительные материалы
Подборки смешных и не очень комментариев: раз, два Увидели смешной комментарий? Напишите его в комменты.
Немного о том, как и для чего [не]нужно писать комментарии
В ранних стандартах языка Си (до С99) были только многострочные комментарии