Цитата:
Yoda Этот момент решается очень просто – маскированием символов внутри строковой константы, например так:
Код:
/* начало комментария
char x[] = "*\/"; // больше нет ошибки
конец комментария */
Конечно, это решается, и решается очень просто. Но возникает вопрос: а должны ли мы так делать? Разве конструкция char x[] = "*/"; в чём-то неправильна? Или в угоду возможности закомментривать код мы должны этот код править? Да нет, мы должны иметь возможность закомментировать любой код. Вот поэтому есть желание сделать комментарии особого вида, которые бы 1) могли быть вложенными 2) могли бы содержать в себе код.
Цитата:
И, кстати, в данном случае вложенность комментариев не играет никакой роли, такая конструкция ломает и невложенный комментарий.
Конечно. Но Сишные комментарии не могут быть вложенными по определению. Я же веду речь о невозможности использования длинного скобочного комментария в качестве вложенного. Вот поговорили, есть новые мысли и новые сомнения. Всё-таки обсуждение с коллегами – это важно, помогает найти то, на что не обратил внимание. Например, возник такой вопрос: а что, если «нерабочий код» содержит синтаксическую ошибку?
Цитата:
ЕМНИП, я пытался оставить свои комментарии на вашем сайте, но почему-то они не оставлялись.
Если включены куки и js, то всё должно работать. Если такое повториться – напишите, когда это было в вплоть до минут – я посмотрю журнал. Кстати, почему-то на этом форуме не получается отправить личное сообщение – это чтобы форум не был замусорен. Ведь не все вещи достойны всеобщего внимания.
Цитата:
Bargest Добавление новых ключевых слов - плохо, особенно когда то же самое можно было бы записать без них. Но отказ elseif в купе с обязательным наличием операторных скобок может превратить цепочку условий в нечто ужасное
Код:
if str1 = "123" {}
else
{
if str2 = "234" {}
else
{
if str3 = "345" {}
else
{
if str4 = "456" {}
else
{
doSomething;
}
}
}
}
Я бы это код переписал бы так:
Код:
(if str1 = "123" . . .
if str2 = "234" . . .
if str3 = "345" . . .
if str4 = "456" . . .
else
doSomething()
)
Так значительно короче и нагляднее. Второй, третий и четвёртый if – это замаскированный elseif. Но это если вести речь не о Си, а о новом языке, в котором мы сами устанавливаем правила.