В стандарте С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 такие комментарии официально не поддерживает, зато их признает большинство компиляторов С.
Однострочный комментарий может находиться внутри многострочного комментария. Например, следующий комментарий является вполне допустимым:
/* это / проверка вложенных комментариев */
Комментарии должны находиться там, где требуется объяснить работу кода. Например, в начале всех функций, за исключением самых очевидных, должен быть комментарий, который сообщает, что именно делает функция, как она вызывается и что возвращает.