Почему Вложенные Комментарии запрещаются?

Почему вложенные комментарии запрещаются в C++, Java inspite факта, который вложил комментарии, полезны, аккуратны, и изящны и может использоваться, чтобы прокомментировать операторы, которые имеют комментарии?

15
задан Primal Pappachan 3 June 2010 в 19:41
поделиться

4 ответа

C и C ++ для простоты анализа. Таким образом, когда они попадают в начало комментария / *, синтаксический анализатор может тривиально просканировать его до конца. В противном случае ему пришлось бы настраивать и поддерживать стек, а затем сообщать об ошибках, если токены комментариев не совпадают.

Относительно того, почему Java делает это, ответ прост - синтаксис Java был разработан для имитации C и C ++. Если бы вложенные комментарии были разрешены, это могло бы сбить с толку некоторых программистов на C, и было бы написано много гневных сообщений в блогах!

14
ответ дан 1 December 2019 в 02:01
поделиться

Он отличается для каждого языка (-семейства), но в целом они не «запрещены», а просто не поддерживаются. Их поддержка - это выбор дизайна.

Одной из причин выбора (для более старых языков) могла быть простота синтаксического анализа.

Примечание: я помню компилятор C ++, где можно было разрешить им вложение. Он был отмечен как «нестандартный».

4
ответ дан 1 December 2019 в 02:01
поделиться

По крайней мере, для C ++ это верно лишь отчасти, нет проблем с:

/*
//
//
*/

Однако, если у вас уже есть комментарий / * в разделе, который вы хотите закомментировать, вы можете сделать это, заключив его в #if 0 , который, как мне кажется, многие компиляторы оптимизируют. Пример:

#if 0
/*

*/
#endif
8
ответ дан 1 December 2019 в 02:01
поделиться

Соответствие/совместимость с C.

3
ответ дан 1 December 2019 в 02:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: