Главная > Уроки > Что такое комментарии и зачем они нужны?

Записывайся на этот курс на Stepike!

Что такое комментарии и зачем они нужны?

Пожалуйста, приостановите работу AdBlock на этом сайте.

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

Пример использования комментариев в программе

Рис.1. Пример использования комментария в программе. (Язык Fortran)

В языке Си есть два вида комментариев. Первый вид тот, который я использую в коде. Такой комментарий называет однострочным. Он действует с того момента как появился и до конца текущей строки. Есть ещё и многострочный комментарий. Начало такого комментария обозначается последовательностью "/*", а конец -- "*/". Всё, что будет записано между этими двумя последовательностями символов не будет восприниматься компилятором. Обычно многострочные комментарии используют для описания больших кусков кода, очень сложных для понимания функций, для указания авторства, для исключения большого куска кода из программы и т.д.

Вы спросите а зачем нужно отключать куски кода программы? Иногда это нужно для того, чтобы найти ошибку в программе или проверить как работают отдельные её части. Если просто удалить код, то потом его придётся писать заново, а так, закомментировал на время, а потом обратно раскомментировал, когда потребовалось. Когда вы начнёте писать более менее большие программы, тогда вы воочию убедитесь в пользе.

Комментарии пишутся программистами для других программистов, которые в будущем будут читать/изменять этот код. Но даже если вы пишите код сугубо в личных целях, то не рекомендую вам брезговать оставлять комментарии. По прошествию нескольких месяцев бывает очень трудно вспомнить, что же ты тут такое делал и почему именно так делал, а не иначе.

Комментарии в коде могут быть как очень смешными:

Листинг 9.

// Магия. Не трогать.

//Этот код отстой, и мы оба это знаем. 
//Так что двигайся дальше, а идиотом ты назовешь меня потом.

// Дорогой я_из_будущего! Пожалуйста, прости меня за этот код.

// Если я еще раз увижу такое, мне придется начать носить на работу оружие.

/* Если это условие когда-нибудь выполнится, пожалуйста, 
 сообщите мне по тел. ххх-ххх-ххх за вознаграждение. */

// пьян, исправить позже

// Когда я начинал это писать, только Бог и я понимали, что я делаю
// Сейчас остался только Бог

Так и не очень:

Листинг 10.

//Пожалуйста, работай

// Я не несу ответственности за этот код.
// Они меня заставили написать его против моей воли.

/*
Если вы читаете эти строки, значит вам поручили мой предыдущий проект.
Я очень, очень сочувствую вам. Удачи.
*/

Расскажи друзьям!
Или поддержи проект.

Практика

  1. Откройте программу "Hello, World". Попробуйте закомментировать строчку printf("Hello, World!\n"); Как вы думаете, как изменится работа программы? Проверьте свое предположение, скомпилировав и запустив эту программу.
  2. Закомментируйте в следующей программе некоторые строки так, чтобы на экране появился следующий текст:
  3. 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;
    }

    Не бойтесь новый непонятных команд! С ними мы ещё разберёмся. =) Программистам часто приходится работать с кодом, в котором они не всё до конца понимают.

  4. Удалите из следующей программы комментарии, которые комментируют код а не поясняют его, и запустите полученную программу.
  5. Программа

    #include <stdio.h>
    #include <locale.h> //библиотека с локализацией, чтобы были доступны русские буквы
    int main(void) {
      setlocale(LC_ALL, ""); //подключаем локализацию
    //  char str1[]= "Поздравляю! Вы справились с задачей!";
    //  for (int i=0; i<37; i++)
    //	printf("%c",str1[i]);
      
      printf("\n");
      return 0;
    }

Дополнительные материалы

Оставить комментарий

Чтобы код красиво отображался на странице заключайте его в теги [code] здесь писать код [/code]

Комментарии

Лёха
Можно, конечно, шутить по поводу комментариев, но всё же за многие годы выработаны определенные рекомендации по их написанию. Например, имхо, очень ёмко они описаны на сайте learncpp.com:

* At the library, program, or function level, use comments to describe WHAT.

* Inside the library, program, or function, use comments to describe HOW.

* At the statement level, use comments to describe WHY.

https://www.learncpp.com/cpp-tutorial/comments/
В моём вольном переводе это будет выглядеть так:
* На уровне библиотек, программ и функциий описывайте ЧТО (они делают)
* Внутри библиотек, программ и функций описывайте КАК (они это делают)
* На уровне команд, пользуйтесь комментариями чтобы описать ПОЧЕМУ (они это делают)
KaDeaT
Отличная ссылка. Спасибо за содержательный комментарий.)
Игорь
Спасибо за интересный урок и ссылки.
KaDeaT
Пожалуйста! Приходите снова.
Art
Компилятором пользуюсь Code::Blocks 16.01!
Lola_lala
Исправьте в 4 предложении "врямя"
KaDeaT
Спасибо! Поправил.
Владимир
Меня иногда поражает ход мыслей авторов курсов. Давали-давали теорию, а потом такие: "Откройте программу "Hello, World"". ЧТО ЭТО ЗА ПРОГРАММА?!!!!! Где Вы ранее говорили о том, как её открывать?
KaDeaT
Здесь: https://youngcoder.ru/lessons/1/ide/pelles_c/osnovy_pellesc.php
Владимир
Бесит просто такой подход!!!
KaDeaT
Не нужно беситься. Об этой программе говорилось в первом уроке. Здесь: https://youngcoder.ru/lessons/1/ide/pelles_c/osnovy_pellesc.php
Rletly
Предлагаю Вам посетить сайт, на котором есть много статей на интересующую Вас тему.

----
<a href="https://xn--80aakfajgcdf8bbqzbrl1h3d.xn--p1ai/">отделка сочи</a>

не чё путём

----
<a href="https://xn--80adbhccsco0ahgdgbcre0b.xn--p1acf/">купить дом сочи</a>

Вы ошибаетесь. Давайте обсудим это. Пишите мне в PM, поговорим.

----
<a href="https://besthoro.ru/gadanie/taro">https://besthoro.ru/gadanie/taro</a>

очень интересно. СПАСИБО.

----
<a href="https://sn1.by/">ремонт компьютеров в минске недорого</a>

Весьма хорошая идея

----
<a href="https://zaim-lime.ru/oneclickmoney/">оне клик мани займ личный кабинет</a>

а мне впадло

----
<a href="https://gtaload.ru/">gta моды</a>

Рекомендую Вам посетить сайт, на котором есть много информации по этому вопросу.

----
<a href="https://japanesecasino-x.com/">japanesecasino-x.com</a>

Безусловно, он не прав

----
<a href="https://igrovyeavtomatyc.com/all/15-obezjanki-crazy-monkey.html">crazy monkey играть бесплатно</a>

Между нами говоря, по-моему, это очевидно. Ответ на Ваш вопрос я нашёл в google.com

----
<a href="https://xn--k1afbql4bi.xn--80adxhks/">купить хороший эхолот</a>

Я согласен со всем выше сказанным.

----
<a href="https://x-casinoslots.com/">casino-x.com</a>
Evgenyccj
удалите,пожалуйста! <a href=https://russian-army-shop.cz/>.</a>
Andreasqtu
Здравствуйте дамы и господа! Есть такой замечательный сайт для заказа бурения скважин на воду. Бурение скважин в Минске – полный комплекс качественных и разумных по цене услуг. Мы бурим любые виды скважин.У нас доступная ценовая политика, рассрочка на услуги и оборудование.Заказывайте скважину для воды – получите доступ к экологически чистой природной воде по самым выгодным в Минске ценам! Самое основное преимущество состоит в том, что вокруг скважинного фильтра делается обсыпка специальным фильтрующим песком. Это сводит к минимуму возможность заиливания скважины, значительно увеличивает приток поступаемой воды и продлевает срок ее службы до 50 лет! Обсадная труба, используемая при роторном бурении, имеет большую толщину стенки, что позволяет ей выдерживать давление грунтов даже на глубине в 150м. Данный вид бурения гарантирует вам 100% результат. Ведь большим минусом шнекового бурения является то, что в случае отсутствия верхней воды на участке, вам придется покрыть расходы подрядчика и оплатить так называемую «разведку» (в среднем, 10 у.е. за каждый пройденный метр). В результате просто потеряете деньги и все равно обратитесь к услугам ротора.
От всей души Вам всех благ!
https://www.ips.knietronic.net/index.php?/topic/1704-%D0%B1%D1%83%D1%80%D0%B5%D0%BD%D0%B8%D0%B5-%D1%81%D0%BA%D0%B2%D0%B0%D0%B6%D0%B8%D0%BD-%D0%BC%D0%BE%D0%BD%D1%82%D0%B0%D0%B6/
http://roadragenz.com/forum/viewtopic.php?f=27&t=1058345&p=1137720#p1137720
https://uc.infinix.club/forum.php?mod=viewthread&tid=4635251&extra=
http://maritimevw.com/forum/viewtopic.php?f=5&t=25505
https://www.qrzitaly.com/forum/index.php?/topic/13593-%D0%B2%D0%BE%D0%B4%D0%B0-%D1%81%D0%BE-%D1%81%D0%BA%D0%B2%D0%B0%D0%B6%D0%B8%D0%BD%D1%8B/