Ядро 3ОС. Система нотации |
Данный раздел документации 3ОС содержит формальное описание системы нотации, выработанной для символического обозначения конструкций языка, использующегося при разработке ядра 3ОС. Данный подход ориентирован на смысловую обозримость кода и заключается в том, чтобы создать такую оптимальную запись кода, которая бы отняла у разработчика минимум времени и сил не только в период его (кода) создания, но и в период его отладки, сопровождения и т.п.
Основные требования, предъявляемые к системе нотации, можно сформулировать следующим образом:
Имена объектов кода (функций, структур, переменных) должны удовлетворять следующим критериям:
В общем случае имя объекта кода состоит из:
Используются следующие соглашения*:
class
) объявляются с префиксом
'c_
'struct
) объявляются с префиксом
's_
'union
) объявляются с префиксом
'u_
'enum
) объявляются с префиксом
'e_
'bool
) имеют
префикс 'l
'n
'f
'char
) имеют
префикс 'c
'char *
)
имеют префикс 'z
'*
) имеют, помимо префикса типа,
также префикс 'p
'void *
) объявляются с
префиксом 'v
'a
'byte
) объявляются
с префиксом 'b
'word
) объявляются
с префиксом 'w
'dword
)
объявляются с префиксом 'dw
'g_
'const
) именуются с префиксом
'k_
'm_
'Is
'* Приведенные правила именования объектов кода, как и любые другие
правила, могут иметь исключения.
Примеры использования системы нотации можно найти в документации по разработке ядра 3ОС. Использование данной системы при разработке других модулей 3ОС носит рекомендательный характер.
Список используемых префиксов*
c_ - class s_ - struct u_ - union e_ - enum b - byte w - word dw - dword c - char z - char * n - int [long, ...] f - float [double, ...] a[..] - массив, где [..] - префикс типа p[..] - указатель, где [..] - префикс типа v - void * l - bool k_ - константа m_ - макрокоманда g_[..] - глобальная переменная, где [..] - префикс типа * Для обозначения префиксов используются строчные литеры
При разработке кода ядра 3ОС, во избежание ошибок неявного объявления, все переменные инициализируются в явном виде. Для обеспечения легкости чтения кода, помимо использования системы нотации, также применяется соответствующее форматирование кода. Вследствие чего, все фрагменты кода ядра оформляются одинаково. Для упрощения записи кода рекомендуется вложенные структуры и объединения объявлять в анонимном виде.