Следующая:Naming Conventions, Следующая:Patches, Предыдущая:System Dependence, Вверх:Hacking
Соглашение о именовании
Я (автор) использую модифицированное венгерское соглашение об именах моих переменных и функций. Как и со всеми соглашениями об обозначениях, если вы не знакомы с этими соглашениями код довольно непрозрачен, но со временем становится ясным и удобным для использования.
Первый символ указывает тип переменной (или функции, которая возвращает указанное значение). Иногда используются дополнительные символы. Я (автор) использую следующие префиксы:
a
b
c
e
f
i
l
o
p
q
s
u
z
Указатель p
- это иногда void *
, иногда указатель на функцию,
в этом случае префикс равен pf, а иногда указатель на другой тип, в этом
случае следующий символ - тип, на который указывает этот указатель.
Массив строк (char * []
) может именоваться как az
(массив
строк). Если данный массив передается в функцию, то параметр функции
именуется как paz
(указатель на массив строк).
Oбратите внимание, что префикс переменной не обязательно указывает
на тип переменной. Например, переменная prefixed с префиксом i может
быть int, long или short. Точно так же переменная с префиксом b
может быть типа char или int; например, значение возвращаемое функцией
getchar
может быть записано в переменную int с префиксом b.
Для нелокальных переменных (extern или static на уровне файла), первый символ после префикса должен быть заглавной буквой.
Большинство статических переменных и функций используют другие
буквы после приставки типа, для того чтобы указать, в каком модуле
данные переменные определены. Это позволяет отличить различные имена в
отладчике. Например, все статические функции в файле protg.c
g
протокола, используют приставку модуля g
. Это - не
слишком полезно, поскольку множество модулей использует приставку
модуля s
.