"Андрей Богатырев. Хрестоматия по программированию на Си в Unix" - читать интересную книгу автора

*/
printf("%d\n", i); /* печатается -2 */

Почему теперь возникает ошибка? Указание: где кончается комментарий?
Ответ: Си не допускает вложенных комментариев. Вместо этого часто используются
конструкции вроде:

#ifdef COMMENT
... закомментированный текст ...
#endif /*COMMENT*/

и вроде

/**/ printf("here");/* отладочная выдача включена */
/* printf("here");/* отладочная выдача выключена */

или

/* выключено(); /**/
включено(); /**/

А вот дешевый способ быстро исключить оператор (с возможностью восстановления) -
конец комментария занимает отдельную строку, что позволяет отредактировать такой
текст редактором почти не сдвигая курсор:

/*printf("here");
*/

1.42. Почему программа печатает неверное значение для i2 ?

А. Богатырев, 1992-95 - 17 - Си в UNIX

int main(int argc, char *argv[]){
int i1, i2;

i1 = 1; /* Инициализируем i1 /
i2 = 2; /* Инициализируем i2 */
printf("Numbers %d %d\n", i1, i2);
return(0);
}

Ответ: в первом операторе присваивания не закрыт комментарий - весь второй оператор
присваивания полностью проигнорировался! Правильный вариант:

int main(int argc, char *argv[]){
int i1, i2;

i1 = 1; /* Инициализируем i1 */
i2 = 2; /* Инициализируем i2 */
printf("Numbers %d %d\n", i1, i2);