2.1  Комментарии

Комментарии представляют собой тексты, предназначенные для аннотации программы. Они пишутся  только для программиста, и  перед лексическим анализом компилятор исключает их из исходного кода программы. Имеется два типа комментарий.

Комментарий 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) даны рекомендации по использованию комментариев при разработке исходного кода программы.