Урок №19. Ключові слова і ідентифікатори

  Юрій  | 

  Оновл. 15 Кві 2020  | 

 126

C++ має зарезервований набір з 84 слів (включаючи версію С++17) для власного використання. Ці слова називаються ключовими словами, кожне з яких має своє особливе значення.

Ось список всіх ключових слів в C++ (включаючи C++17):

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

В версії C++11 також було додано два спеціальних ідентифікатора: override і final. Вони мають особливе значення при використанні в певних контекстах, але не є зарезервованими ключовими словами.

Ми вже стикалися з деякими ключовими словами, такими як int, void і return. Разом з набором операторів, ключові слова визначають всю мову програмування C++ (не включаючи команд препроцесора). Оскільки вони мають особливі значення, то різні IDE виділяють/підсвічують їх різними кольорами.

До кінця цих уроків по С++ ви дізнаєтесь суть більшості з цих ключових слів.

Ідентифікатори

Ідентифікатор — це ім’я змінної, функції, класу або іншого об’єкта в C++. Ми можемо визначати ідентифікатори будь-якими словами/іменами. Тим не менш, є кілька загальних правил, яких необхідно дотримуватися:

  Правило №1: Ідентифікатор не може бути ключовим словом. Ключові слова зарезервовані.

  Правило №2: Ідентифікатор може складатися тільки з букв (нижнього або верхнього регістру), цифр або символів підкреслення. Це означає, що всі інші символи та пробіли заборонені.

  Правило №3: Ідентифікатор повинен починатися з літери (нижнього або верхнього регістру). Він не повинен починатися з цифри.

  Правило №4: C++ розрізняє нижній регістр від верхнього. nvalue відрізняється від nValue і відрізняється від NVALUE.

Тепер, коли ви знаєте, як можна називати об’єкти, давайте поговоримо про те, як їх потрібно називати.

По-перше, в C++ імена змінних починаються з літери в нижньому регістрі. Якщо іменем змінної є одне слово, то це слово повинно бути записано в нижньому регістрі:

Як правило, імена функцій також починаються з літери в нижньому регістрі (хоча не завжди). Ми будемо дотримуватися цього стилю, оскільки навіть функція main() (головна функція у всіх програмах) починається з букви в нижньому регістрі, як і всі функції зі Стандартної бібліотеки C++.

Імена ідентифікаторів, які починаються з великої літери, використовуються для структур та класів (про це пізніше).

Якщо ім’я змінної або функції складається з декількох слів, то є два варіанти: розділити підкресленням або використовувати принцип CamelCase — коли декілька слів пишуться разом, без пробілів, і кожне нове слово пишеться з великої літери. CamelCase (в перекладі як «ВерблюжийСтиль») отримав свою назву через використання великих літер, які нагадують верблюжі горби.

Хоча навіть Стандартна бібліотека C++ використовує символ підкреслення для змінних і функцій, ми все ж будемо використовувати CamelCase для кращої читабельності коду. Іноді ви будете бачити поєднання двох способів: підкреслення для змінних і 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 чи 13? Це залежить від того, враховуємо ми пробіли і розділові знаки чи ні. Замість того, щоб називати змінну numberOfCharsIncludingWhitespaceAndPunctuation, краще записати хороший коментар поруч, який прояснить ситуацію:

Тест

Які з наступних змінних неправильно названі і чому?

   int result;

   int _oranges;

   int NUMBER;

   int the name of a variable;

   int TotalCustomers;

   int void;

   int countFruit;

   int 4orYou;

   int kilograms_of_pipe;

Відповідь

   int result. Все ок.

   int _oranges. Імена змінних не повинні починатися з символів підкреслення.

   int NUMBER. Імена змінних повинні починатися з літери в нижньому регістрі.

   int the name of a variable. Імена змінних не можуть мати пробіли.

   int TotalCustomers. Імена змінних повинні починатися з букви в нижньому регістрі.

   int voidvoid — це ключеве слово і його не можна використовувати в якості ідентифікатора для своїх змінних чи функцій.

   int countFruit. Все ок.

   int 4orYou. Імена змінних не можуть починатися з цифр.

   int kilograms_of_pipe. Все ок.

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (2 оцінок, середня: 5,00 з 5)
Loading...

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *