Какова цель добавления интервалов между операторами?

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

   if(x > 0)

вместо

   if(x>0)

Есть ли для этого особые причины? Мы знаем, что компилятор просто игнорирует такие интервалы, и я не думаю, что последнее выражение менее читабельно.

3

Решение

Иногда пространство необходимо поскольку максимальная цена жаворонка лексера C / C ++. Рассматривать x а также y оба указателя на int, выражение

*x/*y

незаконно, потому что лексер будет относиться /* как комментарий. Так что в этом случае требуется пробел:

*x / *y

(Из книги «Эксперт C Программирование»)

12

Другие решения

Компилятор не заботится о пробелах. Это просто о читабельности.

Некоторые люди предпочитают пробелы вокруг операторов, некоторые нет. Это вопрос личных предпочтений.

Единственное, что имеет значение, это то, что, когда вы работаете в команде, вы все согласны следовать единому стилю (не только в этом отношении, но и по многим другим деталям), потому что смесь обоих труднее читать чем единый путь, даже если это тот, который вам нравится меньше всего.

4

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

Я бы применил пробелы в каждом конкретном случае:

a+b+c+d

более читабельно, IMO, чем

a + b + c + d

тем не мение

a+b*c+d

менее читабельно, чем

a + b*c + d

Я бы сказал, сначала следуйте соглашениям, а потом подумайте о читабельности. Последовательный код красивее.

4

Это просто хорошая манера. Вы можете написать свой код, как хотите, но это своего рода «стандартный» способ.

Также делает код более читабельным.

Два примера, чтобы вы поняли.

1) меньше места

 if(x<0.3&&y>2||!std::rand(x-y)&&!condition){
std::cout<<++x?0:1<<std::endln;
}

2) С хорошим форматированием:

 if (x < 0.3 && y > 2 || !std::rand(x - y) && !condition) {
std::cout << ++x ? 0 : 1 << std::endln;
}
4

Я думаю, что главная причина удобочитаемость кода (и для меня это очень важная причина).

Для меня, с большим количеством пробелов код открывается и становится более читабельным (и, следовательно, более простым для понимания и изменения)

Мой стиль такой:

if (x > 0)
{
....
}

Обратите внимание на пространство между if и открытая скобка (,

2

Я согласен с тем, что другие говорят, что код выглядит более читабельным для большинства людей. Некоторые люди не думают, что он более читабелен, но вы должны предположить, что другие будут смотреть на код в будущем и выиграют от более читаемого стиля.

1

Стиль кодирования, как правило, определяется желанием сделать исходный код более легким для чтения. Тем не менее, существует некоторая субъективность с точки зрения того, какой стиль более или менее читабелен, чем другой. Я думаю, что большинство людей согласятся с тем, что использование сочетания обоих стилей в одном файле было бы плохим выбором.

0

Читаемость. Для сравнения:

// C++

if (x > 0)
{
// some
// code
}

# Python

if x > 0:
# some
# code
0
По вопросам рекламы [email protected]