Большинство языков, с которыми я работал, не поддерживают рекурсивные комментарии.
- Есть ли какая-то причина, по которой разработчики языка решили не реализовывать это?
- Это так?обманчиво сложный?
- Будет ли иметь нежелательные результаты?
Пример рекурсивного комментария:
/*
for (int j = 0; j <= SourceTexture.Height; j += SampleSize)
{
...
}
// Comment within comment below:
/*for (int i = 0; i < TextureColour.Length; i++)
{
...
}*/
sourceTexture.SetData<Color>(TextureColour);
*/
РЕДАКТИРОВАТЬ: я понимаюаргумент ответов до сих пор (проблемы возникают, когда у вас есть токены комментариев в строках).Однако причина моего замешательства в том, что у вас сейчас есть эта проблема.
Например, я знаю, что приведенный ниже код не даст ожидаемого результата.
/*
char *str = "/* string";
// Are we now 1 level inside a comment or 2 levels?
*/
printf("Hello world");
/*
char *str2 = "string */";
*/
Но, на мой взглядэто ничем не отличается от неожиданного результата в приведенном ниже примере:
/*
CODE "*/";
*/
, который также может привести к неожиданному / нежелательному результату.
Итак, хотя это может быть проблемой для рекурсивных комментариев, мойАргумент о том, почему это не причина не делать этого, состоит в том, что это уже проблема для нерекурсивных комментариев.Как программист, я знаю, что компилятор ведет себя так, и я работаю над этим.Я не думаю, что гораздо труднее обойти ту же проблему с помощью рекурсивных комментариев.