Соглашения об именовании идентификаторов
Введем правило именования идентификаторов:
<префикс> <источник> <имя>,
где префикс представляет собой короткое слово, содержащее сведения о типе идентификатора; источник - характеристика происхождения идентификатора: константа, переменная, поле класса и т.п.; имя – название идентификатора, несущее в себе смысловое содержание идентификатора.
1.Имена со смысловой нагрузкой
Одним из способов повышения читабельности кода является использование осмысленных имен для переменных, типов и функций. Имена типов (type name) должны включать название фактически используемых типов; например, int – это имя для значений целочисленного типа (integer), TFont – имя класса шрифтов библиотеки VCL. Имена переменных (variable name) – это названия объявленных переменных некоторого типа.
2.Именование переменных и констант
Название идентификатора начинается с префикса, в котором содержится краткая информация о типе данных. Рекомендуемые значения префиксов для различных типов данных приведены в таблице 2.
Префиксы идентификаторов Таблица 2
Тип данных С++ |
Тип данных Object Pascal |
Префикс |
Характеристика значений |
char, signed char |
ShortInt |
chr |
Целое 8 бит |
|
Char, AnsiChar |
chr |
Символ 8 бит |
unsigned char |
Byte, ByteBool |
by |
true/false или целое без знака 8 бит |
wchar_t |
WideChar |
wchr |
Символ Unicode размером в слово |
short |
SmallInt |
sint |
Целое 16 бит |
unsigned short |
Word, WordBool |
wrd |
true/false или целое без знака 16 бит |
enum |
Перечислимый тип данных |
enum |
0, 1, 2, … |
long, int |
LongInt, Integer |
int |
Целое 32 бит |
unsigned long, unsigned int |
Cardinal |
card |
Целое без знака 32 бит |
SmallString<n> |
String[n] |
str |
n = 1, 2, … , 255 |
SmallString<255> |
ShortString |
str |
|
AnsiString |
String |
str |
|
float |
Real |
|
Устаревшие типы данных |
|
Single |
sgl |
Вещественное 4 байта |
double, Double, |
dub |
dub |
|
long double, Extended |
ext |
ext |
|
bool, Boolean, LongBool |
bool |
bool |
|
void *, Pointer |
ptr |
ptr |
|
unsigned char *, PChar, PAnsiChar |
pchr |
pchr |
|
Замечание. В таблице 2 нетрадиционные для языка С++ идентификаторы типов данных взяты из языка Object Pascal. Для использования их программах на языке С++ необходимо добавить директиву
#include <sysdefs.h>.
Класс |
Префикс |
Класс |
Префикс |
TObject |
obj |
TRadioButton |
rbtn |
TForm |
frm |
TMainMenu |
mm |
TTable |
tbl |
TMenuItem |
mi |
TQuery |
qry |
TOpenDialog |
od |
TStoredProc |
sp |
TSaveDialog |
sd |
TDataSource |
ds |
TListBox |
lbox |
TDBGrid |
dbg |
TList |
lst |
TButton |
btn |
TStringGrid |
sgr |
TPanel |
pnl |
TEdit |
edt |
TDirectoryListBox |
dlb |
TActionList |
alst |
TGroupBox |
gbox |
TImageList |
ilst |
TBitBtn |
bbtn |
TStringList |
slst |
3. Признак происхождения описания идентификатора
Константа C
Переменная V
Поле класса или записи F
Формальный параметр A
Свойство Р
4. Название идентификатора формулируется с указанием его семантики
5. Допускается именование идентификаторов с отступлением от указанных правил для обозначения локальных рабочих переменных и констант, а также формальных параметров в небольших по объему функциях и процедурах
6. При обработке массивов с помощью операторов цикла использовать для названий индексов буквы i, j, k, l, m.
Примеры идентификаторов
strFDivisionName – переменная типа String, является полем класса, название переменной – DivisionName(Имя раздела)
byCQuantityTables – константа типа byte, название QuantityTables (Количество таблиц)
crdarVConcepts – массив с элементами типа Cardinal, объявлен как переменная, название Concepts (Понятия)
pnlFOpenDirectory – поле класса TPanel, объявлено вероятней всего в потомках класса TForm
lblFDirectoryPath –поле класса TLabel
7. Приведенные примеры показывают, как использовать заглавные буквы в названиях идентификаторов, при этом от использования символа _ (подчеркивание) можно отказаться
