Комментарии

Содержание

В стандарте С89 определены комментарии только одного вида; такой комментарий начинается с символов /* и заканчивается символами */. Между звездочкой и слешем не должно быть никаких пробелов. Любой текст, расположенный между начальными и конечными символами комментария, компилятором игнорируется. Например, следующая программа только выведет на экран Привет:

#include <stdio.h>

int main(void)
{
  printf("Привет");
  /* printf("всем"); */

  return 0;
}

Комментарий такого вида называется многострочным комментарием (multiline comment), потому что его текст может располагаться в нескольких строках. Например,

/* это
   многострочный
   комментарий */

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

x = 10+ /* прибавлять числа */5;

а комментарий

swi/* такое работать не будет */tch(c) { ...

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

Многострочные комментарии не могут быть вложенными. То есть в одном комментарии не может находиться другой. Например, при компиляции следующего фрагмента кода будет обнаружена ошибка:

/* Это внешний комментарий
  x = y/a;
  /* а это внутренний комментарий, обнаружив который,
     компилятор выдаст сообщение об ошибке */
*/

Однострочные комментарии


В С99 (да и в C++) поддерживается два вида комментариев. Первым из них является /* */, или многострочный комментарий, о котором только что говорилось. А вторым — однострочный комментарий. Такой комментарий начинается с символов / и заканчивается в конце строки. Например:

/ это однострочный комментарий

Однострочные комментарии особенно полезны тогда, когда нужны краткие, не более чем в одну строку пояснения. Хотя версия С89 такие комментарии официально не поддерживает, зато их признает большинство компиляторов С.

Однострочный комментарий может находиться внутри многострочного комментария. Например, следующий комментарий является вполне допустимым:

/* это / проверка вложенных комментариев */

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