Урок №18. Базовое форматирование кода

Пробелы, вместе с символами табуляции и переноса строки, являются неотъемлемой частью форматирования кода. Хотя компилятор обычно не обращает внимания на пробелы, существуют некоторые исключения.
В данном примере все строки программного кода выполняют одну и ту же функцию:
std :: cout << "Hello, world!" ;
std :: cout << "Hello, world!" ;
std :: cout << "Hello, world!" ;
std :: cout
<< "Hello, world!" ;
Даже последний высказывание с переносом строки будет успешно обработано компилятором.
То же самое:
int add ( int x , int y ) { return x + y ; }
int add ( int x , int y ) {
return x + y ; }
int add ( int x , int y )
{ return x + y ; }
int add ( int x , int y )
{
return x + y ;
}
Исключением является случай, когда компилятор учитывает пробелы, это происходит в цитируемом тексте, например: "Hello, world!".
"Greetings, Earth!"
имеет различия с
Привет, мир!В цитируемом тексте не разрешается использовать разрывы или переносы строки:
std :: cout << "Hello,
world!" << std :: endl ; // Не допускается!
Еще одним случаем, когда компилятор обращает внимание на пробелы, являются однострочные комментарии: они занимают всего одну строку. Если однострочный комментарий будет разделен на две строки, это приведет к ошибке компиляции, как показано ниже:
std :: cout << "Hello, world!" << std :: endl ; // это однострочный комментарий
А это уже не комментарий
Основные рекомендации
В отличие от многих других языков программирования, в C++ отсутствуют строгие ограничения по форматированию кода, оставляя программисту полную свободу действий. Основной принцип заключается в использовании тех методов, которые способствуют улучшению читаемости и логичности кода.
Вот шесть ключевых советов:
Совет №1: Для замены символа табуляции (клавиша «Tab») рекомендуется использовать 4 пробела. В некоторых средах разработки по умолчанию установлено три пробела в качестве одного символа табуляции — это также допустимо (количество пробелов легко настраивается в соответствующих разделах меню вашей среды разработки).
Основной причиной замены символов табуляции на пробелы является возможность сохранения правильных отступов при открытии кода в другом редакторе, в отличие от использования табуляции.
Второй совет: Фигурные скобки функции должны открываться и закрываться на одном уровне, каждая на отдельной строке.
int main ( )
{
}
Хотя есть еще и следующий вариант (вы также можете его использовать):
int main ( ) {
//...
}
Один из плюсов первого варианта заключается в том, что в случае возникновения ошибки с несоответствием скобок их можно будет легче обнаружить визуально.
Совет №3: Для каждого оператора функции необходимо использовать правильный отступ (нажатие клавиши Tab или вставка 4 пробелов):
int main ( )
{
std :: cout << "Hello world!" << std :: endl ; // один Tab (4 пробела)
std :: cout << "Nice to meet you." << std :: endl ; // один Tab(4 пробела)
}
Совет №4: Длина строк не должна превышать 72, 78 или 80 символов - это оптимальный предел. Если строка будет слишком длинной, лучше разбить её на несколько отдельных.
int main ( )
{
std :: cout << "This is a really, really, really, really, really, really, really, " <<
"really long line" << std :: endl ; // один дополнительный отступ для строки-продолжения
std :: cout << "This is another really, really, really, really, really, really, really, " <<
"really long line" << std :: endl ; // отступ + выравнивание с учетом главной строки
std :: cout << "This one is short" << std :: endl ;
}
Совет №5: Чтобы улучшить читаемость, если длинную строку разбивают на части с помощью определенного оператора (например, << или +), то этот оператор следует поместить в конце той же строки, а не в начале следующей.
Верно:
std :: cout << "This is a really, really, really, really, really, really, really, " <<
"really long line" << std :: endl ;
Неправильно:
std :: cout << "This is a really, really, really, really, really, really, really, "
<< "really long line" << std :: endl ;
Совет №6: Для повышения удобочитаемости вашего кода рекомендуется добавлять пробелы и переносы строк между операторами.
Более сложно для восприятия:
nCost = 57 ;
nPricePerItem = 24 ;
nValue = 5 ;
nNumberOfItems = 17 ;
Более удобочитаемо:
nCost = 57 ;
nPricePerItem = 24 ;
nValue = 5 ;
nNumberOfItems = 17 ;
Более сложно для восприятия:
std :: cout << "Hello world!" << std :: endl ; // cout и endl находятся в библиотеке iostream
std :: cout << "It is very nice to meet you!" << std :: endl ; // эти комментарии ухудшают читабельность кода
std :: cout << "Yeah!" << std :: endl ; // особенно, когда строки разной длины
Более удобочитаемо:
std :: cout << "Hello world!" << std :: endl ; // cout и endl находятся в библиотеке iostream
std :: cout << "It is very nice to meet you!" << std :: endl ; // эти комментарии более читабельны
std :: cout << "Yeah!" << std :: endl ; // не так ли?
Более сложно для восприятия:
// cout и endl находятся в библиотеке iostream
std :: cout << "Hello world!" << std :: endl ;
// эти комментарии ухудшают читабельность кода
std :: cout << "It is very nice to meet you!" << std :: endl ;
// особенно, когда они в одной куче
std :: cout << "Yeah!" << std :: endl ;
Более удобочитаемо:
// cout и endl находятся в библиотеке iostream
std :: cout << "Hello world!" << std :: endl ;
// эти комментарии читать легче
std :: cout << "It is very nice to meet you!" << std :: endl ;
// ведь они разделены дополнительными строками
std :: cout << "Yeah!" << std :: endl ;
Возможность выбора стиля форматирования кода в языке C++ позволяет каждому программисту настроить его так, чтобы работать было максимально удобно.
Comments