Комментарии представляют собой тексты, предназначенные для аннотации программы. Они пишутся только для программиста, и перед лексическим анализом компилятор исключает их из исходного кода программы. Имеется два типа комментарий.
Комментарий C представляет собой последовательность символов, помещаемую между скобками (символами) /* и */. Такие комментарии могут быть многострочными. Комментарий С может быть вставлен в любую часть программы, где разрешены пробельные символы. Обычно их размещают либо в конце строки, либо в отдельных строках.
Комментарий C++ представляет собой два символа наклонной черты (//), записанные без пробела. Такой комментарий может начинаться в любой позиции строки и включает в себя все, что расположено до конца строки. Приведем примеры комментариев:
struct X {
/* это комментарий C */
// это комментарий С ++
};
Стандарт ANSI C не разрешает вложенность комментариев. Попытка комментировать следующую строку в виде:
/* int /* объявление */ i /* целого */; */
окончится неудачей, поскольку область действия первой скобки /* будет ограничена первой скобкой */. Это даст в результате лексического анализа:
i ; */
что приведет к синтаксической ошибке.
В редких случаях пробелы перед /* и // или после */ хотя и не являются синтаксически обязательными, но позволяют избежать проблем, связанных с мобильностью кода. Например, код C++
int i = j//* деление на k*/k
+m;
при лексическом анализе даст:
int i = j +m; а не int i = j/k +m;
как это можно было бы ожидать по традиционным соглашениям языка C. Более удачная форма:
int i = j/ /* деление на k*/ k
+m;
позволяет избежать этой проблемы.
В описании стиля программирования (будет рассмотрен в разделе 4) даны рекомендации по использованию комментариев при разработке исходного кода программы.