Урок 16. Ключевые слова и идентификаторы в С++

   ⁄ 

 Обновлено 16 Авг 2017

  ⁄   

⁄  6

C++ имеет зарезервированный набор из 73 слов для собственного использования. Эти слова называются ключевыми словами (keywords), каждое из них имеет свое особое значение.

Вот список всех ключевых слов C++ (до C++ 11):

alignas **
alignof **
asm
auto
bool *
break
case
catch
char
char16_t **
char32_t **
class
const
constexpr **
const_cast *
continue
decltype
default
delete
do
double
dynamic_cast *
else
enum
explicit *
export *
extern
false *
float
for
friend
goto
if
inline
int
long
mutable *
namespace *
new
noexcept **
nullptr **
operator
private
protected
public
register
reinterpret_cast *
return
short
signed
sizeof
static
static_assert **
static_cast *
struct
switch
template
this
thread_local **
throw
true *
try
typedef
typeid *
typename *
union
unsigned
using *
virtual
void
volatile
wchar_t *
while

* — слова с одной звездочкой были добавлены в C++ 98. Некоторые старые учебники или справочники могут их упускать.

** — слова с двумя звездочками были добавлены в C++ 11. Если ваш компилятор не совместимый с C++ 11, то они могут не работать.

Вы уже сталкивались с некоторыми ключевыми словами, в том числе с int, void, returnusing и namespace. Вместе с набором операторов, keywords определяют весь язык C++ (не включая команд препроцессора). Поскольку ключевые слова имеют особые значения, то при использовании IDE изменит их цвет (они обычно синие) в целях выделения.

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

Идентификаторы

Идентификатор – это имя переменной, функции, класса или другого объекта в C++. C++ дает возможность называть идентификаторы любыми именами, которыми вы только захотите. Тем не менее, есть несколько общих правил, которые необходимо соблюдать при наименовании:

 Идентификатор не может быть ключевым словом. Ключевые слова зарезервированы.

 Идентификатор может состоять только из букв (нижнего или верхнего регистра), цифр или символов подчеркивания. Это означает, что символы (кроме подчеркивания) и пробелы запрещены.

 Идентификатор должен начинаться с буквы (нижнего или верхнего регистра) или с подчеркивания. Он не может начинаться с цифры.

 C++ различает нижний и верхний регистр. nvalue отличается от nValue и отличается от NVALUE.

Теперь, когда вы знаете, как можно называть, давайте поговорим о том, как нужно называть переменные или функции.

Во-первых, обычно в C++ имена переменных начинаются с буквы в нижнем регистре. Если имя переменной состоит из одного слова, то всё должно быть записано в нижнем регистре.

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

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

Если имя переменной или функции состоит из нескольких слов, то здесь есть два варианта: разделить подчеркиванием или CamelCase (когда несколько слов пишутся слитно без пробелов и каждое новое слово с заглавной буквы). CamelCase (в переводе «ВерблюжийСтиль») получил такое название из-за заглавных букв, которые напоминают горбы верблюда.

В этом туториале мы будем использовать способ CamelCase, им более удобно читать код. Но есть много примеров, когда стандартная библиотека C++ использует метод подчеркивания, как для переменных, так и для функций. Иногда вы будете видеть сочетание двух способов: подчеркивание для переменных и CamelCase для функций.

Стоит отметить, что если вы работаете в чужом коде, то хорошим тоном будет соответствовать стилю, который уже есть в коде, даже если он будет в чем-то отличатся от наших рекомендаций.

Во-вторых, вы должны избегать названия идентификаторов, начинающихся с символа подчеркивания, так как эти имена, как правило, зарезервированы для ОС, библиотеки и/или используются компилятором.

В-третьих, и это, пожалуй, самое важное правило из всех – используйте в качестве идентификаторов только те имена, которые реально описывают то, чем является объект. Очень характерно для неопытных программистов сокращать имена переменных, дабы сэкономить время при наборе текста или потому, что они думают, что всё будет понятно и так. В большинстве случаев это является ошибкой. В идеале переменные нужно называть так, чтобы человек, который первый раз увидел ваш код, понял как можно скорее, что он делает. Через 3 месяца, когда вы будете пересматривать программы, вы забудете, как они работают, и потом будете благодарны самому себе за то, что называли переменные по существу, а не как попало. Чем сложнее код, тем проще и понятнее должны быть идентификаторы.

int ccount Плохо Никто не знает, что такое ccount
int customerCount Хорошо Теперь понятно, что мы считаем
int i Плохо* В большинстве нетривиальных случаев плохо, в простых может быть (например, в циклах)
int index 50/50 ОК, если очевидно, что мы индексируем
int totalScore Хорошо Всё понятно
int _count Плохо Не начинайте имена переменных с подчеркивания
int count 50/50 ОК, если очевидно, что мы считаем
int data Плохо Какой тип данных?
int value1, value2 50/50 Может быть затруднительно понять разницу между ними
int numberOfApples Хорошо Всё понятно
int monstersKilled Хорошо Всё понятно
int x, y Плохо* В большинстве нетривиальных случаев плохо, в простых может быть (например, в математических функциях)

*Примечание: это нормально использовать тривиальные имена для переменных, которые имеют тривиальное использование (для переменных цикла, в простых математических функциях и т.д.).

В-четвертых, уточняющий комментарий всегда будет только плюсом. Например, мы объявили переменную с именем numberOfChars, которая должна хранить число символов в куске текста. Сколько символов в тексте «Hello, World!»: 10, 11 или 12? Это зависит от того, учитываем ли мы пробелы или знаки препинания. Вместо того, чтобы называть переменную numberOfCharsIncludingWhitespaceAndPunctuation, хороший комментарий возле строки объявления переменной поможет прояснить ситуацию:

Тест

Какие из переменных неправильно названы и почему?

1) int sum;

2) int _apples;

3) int VALUE;

4) int my variable name;

5) int TotalCustomers;

6) int void;

7) int numFruit;

8) int 3some;

9) int meters_of_pipe;

Ответ

Чтобы увидеть результат, нажмите на ссылку.

Ответ 1

2) Имена переменных не должны начинаться с подчеркивания.

3) Имена переменных должны начинаться с буквы в нижнем регистре.

4) Имена переменных не могут содержать пробелы.

5) Имена переменных должны начинаться с буквы в нижнем регистре.

6) void является ключевым словом.

8) Имена переменных не могут начинаться с цифр.

Переменные 1, 7 и 9 соответствуют правилам.

Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (35 оценок, среднее: 4,94 из 5)
Загрузка...
Поделиться в:
Подписаться на обновления:

Комментариев: 6

  1. pavel:

    В идеале, переменные — тут тоже запятая.
    после прочтения моих комментариев можете спокойно удалять их, если можете

    1. Li4ik:

      Всё исправляю 🙂

  2. Сергей:

    По мере продвижения по уроках с++ , количество оценок заметно
    уменьшылось.

    1. Li4ik:

      Далеко не все продолжают учиться, мотивация кончилась, так всегда 🙂

  3. Erding:

    Очень нравятся уроки, поскольку всё понятно описано даже для людей, знакомых с этим достаточно плохо.
    Я хотел спросить совета у Вас:
    В свои 15-ть лет, я безумно хочу обучиться программированию на языке C++. Читаю абсолютно все Ваши уроки полностью, а также прочитал весь курс введения. Но часто, я просыпаюсь с мыслью, что я опять забыл тот или иной код. Я нахожу свободное время, сажусь, снова перечитываю урок, записываю это где-нибудь, но не могу выйти на более-менее автоматический режим. (Без заметок, подсказок.) Это, иногда, попросту угнетает, отбивая при этом желание продолжать.
    Подскажите, пожалуйста, что нужно делать, для лучшего запоминания информации, которую я получаю с Ваших уроков?

    1. Li4ik:

      Помнить всё и не нужно. Сомневаюсь, что есть программисты, которые запоминают всю, однажды полученную, информацию раз и на всю жизнь. Это нормально, всё не выучишь и не запомнишь. Главное — понять суть, получить базис (фундамент) знаний, а всё остальное — это практика. Ведь для создания программы Вам нужно реализовать теорию, т.е. написать код, исходя из своих знаний. Отсюда и вытекает факт, что для лучшего запоминания чего-либо — нужно это применить на практике. Прочитали урок — применили на практике. Хорошим вариантом будет написания своей программы или игрушки (небольшой, простенькой), можно попробовать найти на YouTube видео-уроки в стиле «Как написать/создать игру на С++» и повторять код. А если Вы забыли какой-то термин, понятие или правило, то это не страшно — зашли в Интернет, перечитали, вспомнили. И, как уже было сказано, всё не выучишь и не запомнишь, а практическое применение знаний — самый лучший вариант запоминания информации.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *